我正在编写一个带有命令的程序,该命令采用称为a和b(起点和终点)的2个坐标三元组(x,y,z),并沿连接它们的线生成一个点列表。每个点距离它之前的点正好是5个单位,除了最后一个点和b之间的距离可能是<我不知道该怎么做。目前我沿着x和y轴以及x和z轴使用2次旋转以获得正确方向上的点,但是当所有3个坐标在2个点之间变化时,距离最后一个点略多于5个单位。
基本上我需要能够在3D笛卡尔网格上旋转一个点,然后在连接枢轴和旋转点的直线上找到点。
答案 0 :(得分:0)
对于给定的两个3D向量p1
和p2
我会做这样的事情:
vec3 delta = p2 - p1;
float len = delta.length();
float step = 5.0f;
vec3 dir = delta.normalized();
float t = step;
while( t < len ) {
vec3 point = p1 + t * dir; // this is your point
t += step;
}