具有距离约束的Java 3D旋转

时间:2014-03-31 04:04:45

标签: java 3d rotation

我正在编写一个带有命令的程序,该命令采用称为a和b(起点和终点)的2个坐标三元组(x,y,z),并沿连接它们的线生成一个点列表。每个点距离它之前的点正好是5个单位,除了最后一个点和b之间的距离可能是<我不知道该怎么做。目前我沿着x和y轴以及x和z轴使用2次旋转以获得正确方向上的点,但是当所有3个坐标在2个点之间变化时,距离最后一个点略多于5个单位。

基本上我需要能够在3D笛卡尔网格上旋转一个点,然后在连接枢轴和旋转点的直线上找到点。

1 个答案:

答案 0 :(得分:0)

对于给定的两个3D向量p1p2我会做这样的事情:

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;
}