geometry - 用螺旋形曲线覆盖任何表面
问题描述
我对一个想法的可行性有疑问。我有一个曲面(可以通过方程 F(x,y,z) = 0 进行参数化或隐式定义),我想绘制一些适合曲面的螺旋线,即曲面上的螺旋线。实现这一目标的过程是什么?我有一个基本想法,灵感来自光线行进方法:我有我的表面(它有一个有限的区域),然后我在它周围“绘制”一条大螺旋曲线,并减小螺旋的半径。如果螺旋线与曲面相交,那么我会保存该点,最后我将获得在曲面上绘制螺旋线的点集......请随时问我有关该问题的问题。感谢您的关注。托马斯
解决方案
有不同的方法可以理解在曲面上“绘制螺旋曲线”。顺便说一句,我不确定您是否使用了正确的术语,因为螺旋线是类似弹簧的曲线,根本不平坦。相反,我将假设一些由隐式C(x,y)=0
或参数x=Xc(t),y=Yc(t)
表示描述的平面曲线。
一种方法是使用(u,v)
表面的参数化,如纹理映射中使用的那样x=Xs(u,v), y=Ys(u, v), z=Zs(u, v)
。例如,对于一个球体,(u,v)
可以对应于球面系统中的角坐标。在这种情况下,映射就足够了x=u, y=v
,曲线的点和曲面的点之间会有直接的对应关系。
另一种方法是通过在方向上“挤出”曲线z
以形成圆柱面,并与圆柱面相交。在这种情况下,您形成系统
S(x, y, z)= 0
C(x, y)= 0
其中是免费的,并作为 的函数z
求解。(您也可以使用参数方程,有不同的组合。)实际上,您执行的是曲线的平行投影。(x, y)
z
除了圆柱体,您还可以通过选择顶点(例如原点)并考虑“孔径”系数且自由的点(zx, zy, az)
来考虑圆锥曲面。这个想法非常接近您的“半径减小”方法,并且对应于中心投影。a
z
推荐阅读
- javascript - javascript中的基类
- angular - *ngFor 项目选择错误 - Angular
- ibm-cloud - 如何在 Watson Assistant 上配置用户名和密码
- python - “连接到 SC2 websocket 失败。它起来了吗?”
- java - Bitmap.getPixel(x,y) 根据设备返回不同的颜色
- java - 如何将所有选定的 jcheckbox 值插入数据库
- html - css 表格列不会与固定标题对齐
- c - 允许哪些分配返回值?
- python - 为 CustomUser 指定的未知字段(密码 1、密码 2)
- html - Bootstrap4 导航链接活动顶部边框样式