时间:2021-05-25
半径为r的圆上的点p(x,y)与圆心O(x0,y0)的关系: x = x0+rcosA; y = y0+rsinA ,A为弧度
样例:http://pressionRatio*r*Math.sin(rad)+dot[1]];
drawLine(pre,cur);
pre = cur; //保存当前点的坐标
}
drawLine(pre,pstart);//使闭合
//描圆点
drawPoint({
pw:2,ph:2,color:'DarkRed',point:dot
});
}
二、弧
就在画出圆的一部分,算法与圆相似
复制代码 代码如下:
//画弧
//dot 圆点
//r 半径
//angle 圆心角
//angleOfSlope 与x轴的夹角
//pop 是否弹出
//title 标签
function drawArc(dot, r, angle, angleOfSlope, pop, title){
var newDot = [dot[0], dot[1]];
var a = (angleOfSlope+angle/2)*Math.PI/180;
if(pop){ //计算圆心的新坐标
newDot[0] = dot[0]+10*Math.cos(a);
newDot[1] = dot[1]+10*Math.sin(a);
}
if(!angleOfSlope){
angleOfSlope = 0;
}
var aos = angleOfSlope*Math.PI/180;
var aos2 = (angleOfSlope+angle)*Math.PI/180;
var pstart = [newDot[0]+r*Math.cos(aos), newDot[1]+r*Math.sin(aos)]; //弧线的起点
var pend = [newDot[0]+r*Math.cos(aos2), newDot[1]+r*Math.sin(aos2)]; //弧线的终点
var pre = pstart;
for(var i=0; i < angle; i+=2){ //在angle范围内画弧
rad = (i+angleOfSlope)*Math.PI/180;
var cur = [r*Math.cos(rad)+newDot[0], r*Math.sin(rad)+newDot[1]];
drawLine(pre,cur);
pre = cur;
}
}
三、扇形
将弧的两端与圆心相连
复制代码 代码如下:
//扇形
//dot 圆点
//r 半径
//angle 圆心角
//angleOfSlope 与x轴的夹角,确定扇形的方向
//pop 是否弹出,即是否偏离圆心
//title 标签
function drawSector(dot, r, angle, angleOfSlope, pop, title){
var newDot = [dot[0], dot[1]];
var a = (angleOfSlope+angle/2)*Math.PI/180;
if(pop){ //计算圆心的新坐标
newDot[0] = dot[0]+10*Math.cos(a);
newDot[1] = dot[1]+10*Math.sin(a);
}
if(!angleOfSlope){
angleOfSlope = 0;
}
var aos = angleOfSlope*Math.PI/180;
var aos2 = (angleOfSlope+angle)*Math.PI/180;
var pstart = [newDot[0]+r*Math.cos(aos), newDot[1]+r*Math.sin(aos)]; //弧线的起点
var pend = [newDot[0]+r*Math.cos(aos2), newDot[1]+r*Math.sin(aos2)]; //弧线的终点
drawLine(newDot,pstart); //连接圆心与起点
var pre = pstart;
for(var i=0; i < angle; i+=2){ //在angle范围内画弧
rad = (i+angleOfSlope)*Math.PI/180;
var cur = [r*Math.cos(rad)+newDot[0], r*Math.sin(rad)+newDot[1]];
drawLine(pre,cur);
pre = cur;
}
drawPolyline([pre, pend, newDot]); //使闭合
//描圆心
drawPoint({
pw:2,ph:2,color:'DarkRed',point:dot
});
//标签
if(title){
document.write("<span style='height: 24px; line-height: 24px; width: 80px; text-align: center; color: RED; position: absolute; left:"+(newDot[0]+r*(2/4)*Math.cos(a)-40)+"px; top: "+(newDot[1]+r*(2/4)*Math.sin(a)-12)+"'>"+title+"</span>");
}
}
是不是很震撼,原来js也能做如此炫酷的事情。。。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
使用js画图之饼图饼图是将一个圆分割为多个扇形。样例:http://.cn/demo/draw8.html复制代码代码如下://饼图//dot圆点//r半径//
一个扇形有一个角。扇形作为圆的一部分,由两个半径和和一段弧围成,在较小的区域被称为小扇形,较大的区域被称为大扇形。圆弧为180度的扇形定义半圆。 一条圆弧和经
本文实例讲述了php绘图之生成饼状图的方法。分享给大家供大家参考。具体如下:这里要实现的功能是人口分布比例图,由扇形组成一个圆,每个扇形颜色不一样。复制代码代码
手机刮刮乐HTML5代码,使用原型prototype扩展了一个clearArc清除圆内像素的功能,此功能未完成扇形清除功能,此外,在清除圆内的像素时,还有点瑕疵
扇形是中学时代要学习的一个基本几何图形,它可以看作是在圆的基础上得到的,经常会看到将扇形用在统计学中,这就要学会给扇形画阴影的技巧,下面给大家分享用几何绘图软件