java 坐标数组_计算数组中法线的坐标

var myarray=[

'0000000000000000000000000000000000000000000000000000',

'0000000000000000010000000000000000000000000000000000',

'0000000000000000100000000000000000000000000000000000',

'0000000000000001000000000000000000000000000000000000',

'0000000000000010000000000000000000000000000000000000',

'0000000000000100000000000000000000000000000000000000',

'0000000000001000000000000000000000000000000000000000',

'0000000000010000000000000000000000000000000000000000',

'0000000000100000000000000000000000000000000000000000',

'0000000001000000000000000000000000000000000000000000',

'0000000010000000000000000000000000000000000000000000',

'0000000100000000000000000000000000000000000000000000',

'0000001000000000000000000000000000000000000000000000',

'0000000000000000000000000000000000000000000000000000',

]

我有一个像上面的数组,包括一个具有特定旋转角度的直线( 45° in this case ),我知道线的所有点,因为我有一个数组,其中包括所有坐标为线的点( '1' -characters) .

var positions=[

[6,12],

[7,11],

[8,10],

[9,9],

[10,8],

[11,7],

[12,6],

[13,5],

[14,4],

[15,3],

[16,2],

[17,1],

]

我也知道线旋转角度:

var angle=45

我想得到的是绘制线的特定坐标( position array )a normal ,以便我的数组看起来像这样:

(用 '2's 符号化的法线有一个 right angle 到我的起始行用 '1's 表示,并且在这种情况下必须得到一个特定的长度 ~16 )

var starting_coordinate=[11,7]

var myarray=[

'0000000000000000000000000000000000000000000000000000',

'0000000000000000010000000000000000000000000000000000',

'0000000000000000100000000000000000000000000000000000',

'0000020000000001000000000000000000000000000000000000',

'0000002200000010000000000000000000000000000000000000',

'0000000220000100000000000000000000000000000000000000',

'0000000002201000000000000000000000000000000000000000',

'0000000000212000000000000000000000000000000000000000',

'0000000000100220000000000000000000000000000000000000',

'0000000001000002200000000000000000000000000000000000',

'0000000010000000022000000000000000000000000000000000',

'0000000100000000000200000000000000000000000000000000',

'0000001000000000000000000000000000000000000000000000',

'0000000000000000000000000000000000000000000000000000',

]

如何计算 line of '2's 的位置并将它们绘制到矩阵中?

var myarray=[

'0000000000000000000000000000000000000000000000000000',

'0000000000000000010000000000000000000000000000000000',

'0000000000000000100000000000000000000000000000000000',

'0000000000000001000000000000000000000000000000000000',

'0000000000000010000000000000000000000000000000000000',

'0000000000000100000000000000000000000000000000000000',

'0000000000001000000000000000000000000000000000000000',

'0000000000010000000000000000000000000000000000000000',

'0000000000100000000000000000000000000000000000000000',

'0000000001000000000000000000000000000000000000000000',

'0000000010000000000000000000000000000000000000000000',

'0000000100000000000000000000000000000000000000000000',

'0000001000000000000000000000000000000000000000000000',

'0000000000000000000000000000000000000000000000000000',

]

function draw_tangente(array, angle, length, x, y) {

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

for (var i=0; i

var new_x = Math.round(Math.cos(radians)*(x-i))

var new_y = Math.round(Math.sin(radians)*(y-i))

try {

var point = array[new_y].split('');point[new_x] = '2';array[new_y] = point.toString().replace(/,/g,'');

} catch(e) {}

}

return array;

}

console.log(draw_tangente(myarray, 45, 10, 11, 7).join('\n'));

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值