gpt4 book ai didi

java - 如何计算 3D 圆的切线?

转载 作者:行者123 更新时间:2023-12-01 19:17:36 26 4
gpt4 key购买 nike

我需要帮助来计算 3D 空间中圆的切线,这是我到目前为止所拥有的 enter image description here

enter image description here

切线用蓝线表示,这是我从 friend 那里得到的计算切线的方法

Vec3D getTangentBetweenTwoPoint( Vec3D p1, Vec3D p2 ) {
Vec3D r = new Vec3D( p1.x - p2.x,
p1.y - p2.y,
p1.z - p2.z );
r.normalize();
return r;
}

void getTangents() {
Vec3D p0, p1;
for ( int i = 1; i < curve_length + 1; i++ ) {
p0 = points[i % curve_length];
p1 = points[(i+1) % curve_length];
tangents[i % curve_length] = getTangentBetweenTwoPoint( p0, p1 );
}
}

任何帮助将不胜感激

最佳答案

基本上,您可以找到从需要切线的点到圆心的 vector ,并取该 vector 与圆法线的叉积(通过取圆的 2 个点加上中心产生平面方程)。

如果对该叉积进行归一化,您将获得该点的法线/切线 vector 。

关于java - 如何计算 3D 圆的切线?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5928490/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com