php画旋转线条,html5 – 使用HTML画布绘制一系列旋转的线条

这是一个艰难的…

例如角度和物体的阵列.长度:

var arr = [

{ angle: 0, h: 50 },

{ angle: 90, h: 60 },

{ angle: 180, h: 70 },

{ angle: 270, h: 80 },

{ angle: 180, h: 90 }

];

以下绘制方法将绘制前一个数组中的行,

function getAngle(ctx, x, y, angle, h) {

var radians = angle * (Math.PI / 180);

return { x: x + h * Math.cos(radians), y: y + h * Math.sin(radians) };

}

function draw() {

var canvas = document.getElementById('canvas');

if (canvas.getContext) {

var ctx = canvas.getContext('2d');

ctx.beginPath();

var pos = { x: 400, y: 400 };

for (var i = 0; i < arr.length; i++) {

ctx.moveTo(pos.x, pos.y);

pos = getAngle(ctx, pos.x, pos.y, arr[i].angle, arr[i].h);

ctx.lineTo(pos.x, pos.y);

}

ctx.stroke();

}

}

你可以在canvas元素之后调用draw

draw();

编辑:

尝试将绘图功能更改为此,

function draw() {

var canvas = document.getElementById('canvas');

if (canvas.getContext) {

var ctx = canvas.getContext('2d');

ctx.beginPath();

var pos = { x: 400, y: 400 },

angle = 0;

for (var i = 0; i < arr.length; i++) {

angle += arr[i].angle;

angle = (arr[i].angle + angle) % 360;

ctx.moveTo(pos.x, pos.y);

pos = getAngle(ctx, pos.x, pos.y, arr[i].angle + angle, arr[i].h);

ctx.lineTo(pos.x, pos.y);

}

ctx.stroke();

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值