Rob*_*cks 5 3d graphics bezier points geometry-surface
我需要找到2点的视觉视野,曲面的.
我有:
我需要计算:
注意:上次我问这个问题时,我得到了一个解决方案,但它只发现了曲线的极值,而不是地平线点,它们根据两条曲线相对于彼此的位置和旋转而变化.
您没有说明您的曲面是如何定义的,只是说它由两条二次 B\xc3\xa9zier 曲线界定。有很多方法可以构建这样的表面,并且每种构建方法都有不同的地平线。所以这个答案将是猜测。
\n\n地平线由表面上的那些点组成,从相机到该点的矢量与表面相切,如下所示:
\n\n
二次 B\xc3\xa9zier 曲线具有参数方程
\n\n\n\n\nB( t ) = (1\xc2\xa0\xe2\x88\x92\xc2\xa0 t ) 2 P 0 + 2(1\xc2\xa0\xe2\x88\x92\xc2\xa0 t ) t P 1 + t 2 \xc2\xa0P 2
\n
对 t 求导即可得到曲线的正切:
\n\n\n\n\nB\xe2\x80\xb2( t ) = 2( t \xc2\xa0\xe2\x88\x92\xc2\xa01) P 0 + 2(1\xc2\xa0\xe2\x88\x92\xc2\xa02 t ) P 1 + 2 t \xc2\xa0P 2
\n
这与从相机(在原点)到曲线的矢量平行,如果
\n\n\n\n\nB( t )\xc2\xa0\xc3\x97\xc2\xa0B\xe2\x80\xb2( t ) = 0
\n
求解t,您将得到地平线上曲线上的点。如何将其扩展到整个表面的地平线取决于表面的构造方式。(也许您可以找到曲面两端曲线的水平点,然后用直线将它们连接起来?)
\n| 归档时间: |
|
| 查看次数: |
862 次 |
| 最近记录: |