什么是0.017453呢?
如果在flash中画圆圈,很可能要用到0.017453这个参数.如画圆环.
在flash中,rotation旋转的值我们知道是"度".而如何把"度"转换为"弧度"?数学中2πr是表示圆的周长,2π表示整圆的弧度也就是360度,那么1弧度就是2π/360=0.017453.
以下是一画圆环的例子:
function drawRing(target_mc, instance, r1, r2, rgb, doHide) {
var TO_RADIANS = 0.017453;
target_mc[instance] == undefined ? (target_mc.createEmptyMovieClip(instance, target_mc.getNextHighestDepth())) : (target_mc[instance].clear());
with (target_mc[instance]) {
beginFill(rgb, 100);
moveTo(0, 0);
lineTo(r1, 0);
var a = 0.268000;
var i = 0;
while (i<12) {
var endx = r1*Math.cos((i+1)*30*TO_RADIANS);
var endy = r1*Math.sin((i+1)*30*TO_RADIANS);
var ax = endx+r1*a*Math.cos(((i+1)*30-90)*TO_RADIANS);
var ay = endy+r1*a*Math.sin(((i+1)*30-90)*TO_RADIANS);
curveTo(ax, ay, endx, endy);
i++;
}
moveTo(0, 0);
lineTo(r2, 0);
var i = 12;
while (i>0) {
var endx = r2*Math.cos((i-1)*30*TO_RADIANS);
var endy = r2*Math.sin((i-1)*30*TO_RADIANS);
var ax = endx+r2*-a*Math.cos(((i-1)*30-90)*TO_RADIANS);
var ay = endy+r2*-a*Math.sin(((i-1)*30-90)*TO_RADIANS);
curveTo(ax, ay, endx, endy);
i--;
}
endFill();
}
if (doHide) {
target_mc[instance]._visible = false;
}
return (target_mc[instance]);
}drawRing(mc_loader, "mask", radius, radius-radius_diff, 0x0000FF);
没有评论:
发表评论