【发布时间】:2018-10-10 07:30:27
【问题描述】:
我想在一条直线上获取 2 个给定点之间的所有 x、y、z 坐标。我需要能够在 JavaScript 中执行此操作,以检查弹丸是否在我的游戏中碰撞。
所以,例如:
第 1 点:(0,0,0) 第 2 点:(2,2,2) -> 0,0,0 - 1,1,1, 2,2,2
编辑,这里是任何迷路的人的工作代码。
def ROUND(a):
return int(a + 0.5)
def drawDDA(x1,y1,z1,x2,y2,z2):
x,y,z = x1,y1,z1
length = (x2-x1) if (x2-x1) > (y2-y1) else (y2-y1) if (y2-y1) > (z2-z1) else (z2-z1)
dx = (x2-x1)/float(length)
dy = (y2-y1)/float(length)
dz = (z2-z1)/float(length)
print (ROUND(x),ROUND(y),ROUND(z))
for i in range(length):
x += dx
z += dz
y += dy
print(ROUND(x),ROUND(y),ROUND(z))
drawDDA(0,1,2,10,11,12)
【问题讨论】:
-
在 2 个不同的点之间有无限多的点。
标签: javascript 3d line rasterizing