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'));