问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

怎样用Javascript画个实心圆和计算器10

发布网友 发布时间:2023-10-09 09:19

我来回答

3个回答

热心网友 时间:2024-11-26 22:05

1、JS画圆

<script type="text/javascript">
//功能:画实心圆
//参数:圆心坐标,半径,精确度,背景颜色
//主要用到了中学时的圆的一些特征公式呵呵

function SolidCircle(centreX, centreY, radius, precision, color){
var cx = Math.abs(parseInt(centreX));
var cy = Math.abs(parseInt(centreY));
var r = parseInt(radius<2 ? 60 : radius);
var p = parseInt(precision<1 ? 1 : precision);
var c = color;

var y;
for(var x=cx-r; x<=cx+r; x+=p){
y = cy - Math.sqrt(Math.pow(r, 2) - Math.pow(cx - x, 2));
document.write('<img style="background:'+c+'; border:1 solid '+c+'; width:'+p+'; height:'+parseInt(2*Math.sqrt(Math.pow(r, 2) - Math.pow(cx - x, 2)))+'; position:absolute; top:'+parseInt(y)+'; left:'+parseInt(x)+';">');
}

//alert("一共有 " + document.all.length + " 个 <img>");
}
SolidCircle(450, 100, 100, 1, "green");
</script>

2、计算器的连加原理其实和连续计算的原理是一样的,所以,在JS里面一定要定义一个全局变量,不论是加减乘除都调用这个变量即可。下面是一段完整的计算器代码,你可以参考一下,也可以解决你的问题。

<FORM name="Keypad" action="">
<TABLE>
<B>
<TABLE border=2 width=50 height=60 cellpadding=1 cellspacing=5>
<TR>
<TD colspan=3 align=middle>
<input name="ReadOut" type="Text" size=24 value="0" width=100%>
</TD>
<TD
</TD>
<TD>
<input name="btnClear" type="Button" value=" C " onclick="Clear()">
</TD>
<TD><input name="btnClearEntry" type="Button" value=" CE " onclick="ClearEntry()">
</TD>
</TR>
<TR>
<TD>
<input name="btnSeven" type="Button" value=" 7 " onclick="NumPressed(7)">
</TD>
<TD>
<input name="btnEight" type="Button" value=" 8 " onclick="NumPressed(8)">
</TD>
<TD>
<input name="btnNine" type="Button" value=" 9 " onclick="NumPressed(9)">
</TD>
<TD>
</TD>
<TD>
<input name="btnNeg" type="Button" value=" +/- " onclick="Neg()">
</TD>
<TD>
<input name="btnPercent" type="Button" value=" % " onclick="Percent()">
</TD>
</TR>
<TR>
<TD>
<input name="btnFour" type="Button" value=" 4 " onclick="NumPressed(4)">
</TD>
<TD>
<input name="btnFive" type="Button" value=" 5 " onclick="NumPressed(5)">
</TD>
<TD>
<input name="btnSix" type="Button" value=" 6 " onclick="NumPressed(6)">
</TD>
<TD>
</TD>
<TD align=middle><input name="btnPlus" type="Button" value=" + " onclick="Operation('+')">
</TD>
<TD align=middle><input name="btnMinus" type="Button" value=" - " onclick="Operation('-')">
</TD>
</TR>
<TR>
<TD>
<input name="btnOne" type="Button" value=" 1 " onclick="NumPressed(1)">
</TD>
<TD>
<input name="btnTwo" type="Button" value=" 2 " onclick="NumPressed(2)">
</TD>
<TD>
<input name="btnThree" type="Button" value=" 3 " onclick="NumPressed(3)">
</TD>
<TD>
</TD>
<TD align=middle><input name="btnMultiply" type="Button" value=" * " onclick="Operation('*')">
</TD>
<TD align=middle><input name="btnDivide" type="Button" value=" / " onclick="Operation('/')">
</TD>
</TR>
<TR>
<TD>
<input name="btnZero" type="Button" value=" 0 " onclick="NumPressed(0)">
</TD>
<TD>
<input name="btnDecimal" type="Button" value=" . " onclick="Decimal()">
</TD>
<TD colspan=3>
</TD>
<TD>
<input name="btnEquals" type="Button" value=" = " onclick="Operation('=')">
</TD>
</TR>
</TABLE>
</TABLE>
</B>
</FORM>
</CENTER>
<font face="Verdana, Arial, Helvetica" size=2>
<SCRIPT LANGUAGE="JavaScript">
<!-- Begin
var FKeyPad = document.Keypad;
var Accum = 0;
var FlagNewNum = false;
var PendingOp = "";
function NumPressed (Num) {
if (FlagNewNum) {
FKeyPad.ReadOut.value = Num;
FlagNewNum = false;
}
else {
if (FKeyPad.ReadOut.value == "0")
FKeyPad.ReadOut.value = Num;
else
FKeyPad.ReadOut.value += Num;
}
}
function Operation (Op) {
var Readout = FKeyPad.ReadOut.value;
if (FlagNewNum && PendingOp != "=");
else
{
FlagNewNum = true;
if ( '+' == PendingOp )
Accum += parseFloat(Readout);
else if ( '-' == PendingOp )
Accum -= parseFloat(Readout);
else if ( '/' == PendingOp )
Accum /= parseFloat(Readout);
else if ( '*' == PendingOp )
Accum *= parseFloat(Readout);
else
Accum = parseFloat(Readout);
FKeyPad.ReadOut.value = Accum;
PendingOp = Op;
}
}
function Decimal () {
var curReadOut = FKeyPad.ReadOut.value;
if (FlagNewNum) {
curReadOut = "0.";
FlagNewNum = false;
}
else
{
if (curReadOut.indexOf(".") == -1)
curReadOut += ".";
}
FKeyPad.ReadOut.value = curReadOut;
}
function ClearEntry () {
FKeyPad.ReadOut.value = "0";
FlagNewNum = true;
}
function Clear () {
Accum = 0;
PendingOp = "";
ClearEntry();
}
function Neg () {
FKeyPad.ReadOut.value = parseFloat(FKeyPad.ReadOut.value) * -1;
}
function Percent () {
FKeyPad.ReadOut.value = (parseFloat(FKeyPad.ReadOut.value) / 100) * parseFloat(Accum);
}
// End -->
</SCRIPT>

补充哦,怕在百度hi上给你的留言你看不到呵呵
----------------------------------------
那个圆也是没有问题的,因为给学生上课讲过这个算法,它有些类似于微积分中圆的面积求法,其实是将圆沿X轴进行细分,细分的精度由precision决定,所以,当你在这段代码中将精确降低的话,圆的边界就很粗糙,把细分后的每一块把它看成一个图形,这样累加起来,不就组成一个实习圆了嘛(截止到这儿,讲的是算法问题)。然后呢,代码的精髓在于那个For循环,(var x=cx-r; x<=cx+r; x+=p)表示变量是从圆的最左边开始的[因为圆心cx-半径r得到最左边,下同],到最右边结束[cx+r],而每次增加多少呢,是由精度控制的[x+=p],然后循环体内的代码的精髓是图片的宽度和高度那块儿,宽度当然就等于精度了,高度的那个公式y = sqrt(r^2 - x^2)是画圆的必备公式,你应该明白吧。好了,到此为止,这段代码的原理和实现我都说到这儿了,希望你能明白。

热心网友 时间:2024-11-26 22:05

计算器参考如下:
运算符号选项形式,可以避免输入错误:<html>
<body>
第一个数<input type="text" value="" width="100" id="num1"><br>
运算符号<select id="fh">
<option value="+">加</option>
<option value="-">减</option>
<option value="*">乘</option>
<option value="/">除</option>
</select><br>
第二个数<input type="text" value="" width="100" id="num2"><br>
运算结果<input type="text" value="" width="100" id="jg" ><br><br>
<input type="button" value=" 计算 " onclick="js()">
<script>
function js(){
var num1=document.getElementById("num1").value
var num2=document.getElementById("num2").value
var fh=document.getElementById("fh").value
var jg=document.getElementById("jg")
if(!isNaN(num1) && !isNaN(num2)){
if(fh=="+")jg.value=Number(num1)+Number(num2)
if(fh=="-")jg.value=Number(num1)-Number(num2)
if(fh=="*")jg.value=Number(num1)*Number(num2)
if(fh=="/")jg.value=Number(num1)/Number(num2)
}
}
</script>
</body>
</html>
JS画实心圆参考如下:
<script type="text/javascript">
//功能:画实心圆
//参数:圆心坐标,半径,精确度,背景颜色
function SolidCircle(centreX, centreY, radius, precision, color){
var cx = Math.abs(parseInt(centreX));
var cy = Math.abs(parseInt(centreY));
var r = parseInt(radius<2 ? 60 : radius);
var p = parseInt(precision<1 ? 1 : precision);
var c = color;

var y;
for(var x=cx-r; x<=cx+r; x+=p){
y = cy - Math.sqrt(Math.pow(r, 2) - Math.pow(cx - x, 2));
document.write('<img style="background:'+c+'; border:1 solid '+c+'; width:'+p+'; height:'+parseInt(2*Math.sqrt(Math.pow(r, 2) - Math.pow(cx - x, 2)))+'; position:absolute; top:'+parseInt(y)+'; left:'+parseInt(x)+';">');
}

//alert("一共有 " + document.all.length + " 个 <img>");
}
SolidCircle(450, 100, 100, 1, "green");
</script>

热心网友 时间:2024-11-26 22:06

一楼真是位高手
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
whirlpool如何制热 如何查被录取到的专业 怎样查被录取的专业 录取后怎样查询录取的专业 录取专业怎么查 已被录取怎么查专业 ghs网络语什么意思_ghs网络语意思出处含义介绍 纸箱企业管理软件 ghs什么意思网络(ghs什么意思网络用语) 《喜羊羊与灰太狼》大结局 js 怎么设置这个圆的起始位置1 怎么用d3.js画出来三个颜色不同的小球1 苹果手机后置摄像头黑屏怎么办339 如何用javascript画两个圆,找到两个圆心,将圆心连线...2 苹果手机后置摄像头坏啦怎么办45 怎么样才能学好数学和英语,1 15年起亚k5主气囊怎么拆1 知了怎么繁殖下一代61 黄金螺怎么繁殖和怎么饲养?64 怎样让斑马螺繁殖?9 螺蛳怎么繁殖?42 斑马螺怎么繁殖?12 辣螺是怎么繁殖的?17 如何在百度里面评价别人的文章及其他的一些东西,麻烦各位帮我解... ABB510变频器到20HZ左右,电流达到额定后就不能升频到...4 汽车机油加注口一般在哪?736 c#编程!求各位大神帮我解决这个问题,谢谢! 刚装的空调可以加变频器吗?2 快一点解决这个问题,谢谢哦 格力变频空调不升频的原因6 苹果手机在保修范围内摄像头坏了可以免费维修吗?33 html5中怎么画菱形,多边形3 求助:北京比较靠谱的实木家具性价比又特别高的,大神们给说几个... 想在淘宝上买一套实木沙发,不知道哪一家店东西比较好,性价比高...1 去哪里购买全实木家具比较好? 买实木家具什么木材好 3类材质性价比高2 想在中山买一套木质的家具,实木家具和红木家具是社么区别啊,还...2 实木家具哪种木头最好110 贴皮与纯实木的区别?怎么辨别纯实木家具81 网上购物现在正变得越来越受欢迎用英语怎么说3 这样我们的地球就会变得更加的美好翻译为英语6 黄昏少女x失忆安魂曲罗马音歌词33 请问2107是什么意思,关于感情的,谢谢。14 你好,卫生间砸了六块30的地砖,防水层以破坏,请问防水怎么做...2 卫生间防水怎么重做?由于卫生间的防水层被弄坏了好几个洞,能否...2 机油尺怎么看?加机油的时候,加到哪就可以了?9 卫生间漏水了,如何修补防水层?8 金立gn8001l如何连接电视机 您好!请问厕所的墙砖打掉了几块,防水破坏,重刷了那几块的防水...3 CF爆破的黑色城镇,新年街区,沙漠灰有哪些传点?