gpt4 book ai didi

algorithm - 在法线已知的平面上画一条垂直于直线的直线

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:33:27 24 4
gpt4 key购买 nike

我在已知法向量的平面上有一条线的两个向量 (Vector3) 位置。我想做的是在同一平面上画一条垂直于这条线的线。假设 end1 和 end2 是两个向量,表示原始行的末端我现在正在尝试的是:

                    var line1 = end1 + ( (end2-end1)* 1 );
var rotatedLine = Quaternion.AngleAxis( 90, anchor.transform.rotation*Vector3.up ) * end1;
//Debug.DrawLine(end2, rotatedLine, Color.blue);
var newLine1 = Instantiate(line );
LineRenderer lr2 = newLine1.GetComponent<LineRenderer>();
lr2.SetPosition(0,end1);
lr2.SetPosition(1,rotatedLine);

其中 anchor.transform.rotation*Vector3.up 表示平面的法线。然而,这不会产生所需的结果

最佳答案

用叉积计算垂线:

若N为平面法线,垂线方向为:

Vector3 dir = Vector3.Cross( N, ( end2 - end1 ).normalized );

并且该行定义为:

lr2.SetPosition( 0, end1 );
lr2.SetPosition( 1, end1 + dir );

(使用 Cross( ( end2 - end1 ).normalized, N ); 用于相反的方向。

关于algorithm - 在法线已知的平面上画一条垂直于直线的直线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51247734/

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