使用角度在二维阵列中循环

Loop through a 2d array using angle

本文关键字:二维 阵列 循环      更新时间:2023-10-16

我正在寻找一种能够以指定角度输出2d数组中所有值的方法。。这样,如果我有一个像这样的2d阵列

 _ _ _ _ _ 
|_|_|_|_|_|
|_|_|_|_|_|
|_|_|_|_|_|
|_|_|_|_|_|
|_|_|_|_|_|

我给它提供了一个角度0,它将在位置输出值。(行,列)(0,3),(1,3),(2,3)。

 _ _ _ _ _ 
|_|_|x|_|_|
|_|_|x|_|_|
|_|_|x|_|_|
|_|_|_|_|_|
|_|_|_|_|_|

然而,问题是,如何计算25度或其他角度的值。。我似乎可以为0,90180270做这件事……但介于两者之间的人我看不到……我一定是一个简单的三元身份,但是的。。。数学不好真糟糕。。。

强力方法是计算直线的方程,然后使用与Bresenham相关的算法来选择应该选择的槽、框或点。

把你的矩阵想象成一个像素屏幕。

一些角度(以度为单位)供您思考:30、60和22.5。

也许更好的解决方案是将角度限制在一组中的几个。您可以存储几个角度(例如30度)的x、y位置。这是基于这样一种想法,即许多角度将在矩阵中选择相同的槽。