三维建模算法(三)
项道德(微信:daode1212) 2021-02-13
编程语言:C# + OpenTK
人们从使用负数、无理数,拓展到虚数、复数,看似抽象,其实作用不小。然而,现在
可以用编程来研究一下,球的乘方与开方,球的幂运算,球的指数与对数运算、以及三角与
反三角,双曲与反双曲等,它们究竟是什么图形? 现在一一展现给你。
0.标准的球面方程是: x
2
+y
2
+z
2
=r
2
,但是,在三维编程中还是用极坐标来呈现方便。
本文大多使用极坐标方程来表示及变换。
//三维建模体---球:[经度,a范围:0...+360, 纬度,b范围:-90...+90]
float x = (float)(Math.Cos(a) * Math.Cos(b));//空间坐标x
float y = (float)(Math.Sin(a) * Math.Cos(b));//空间坐标y
float z = (float)(Math.Sin(b));//空间坐标 z
1.仅在 X-Y 平面上加入轨迹为圆的平移,可以生成环了:
// 三 维 建 模 体 --- 环 :[ 经 度 , a 范 围 :-180...+180, 纬 度 , b 范
围:-180...+180]
float x = (float)(Math.Cos(a) *Math.Cos(b) + 2*Math.Cos(a) );//
空间坐标x
float y = (float)(Math.Sin(a) *Math.Cos(b) + 2*Math.Sin(a) );//
空间坐标y
float z = (float)(Math.Sin(b));//空间坐标 z
2.进一步,再在 Z 方向,加上 a/6 偏移,可以生成螺旋管了:
//三维建模体---螺旋管:[经度,a范围:-720...+720,纬度, b范
围:-180...+180]
float r = 0.5f;
float x = (float)(r*Math.Cos(a) * (Math.Cos(b)+2));//空间坐标x
float y = (float)(r*Math.Sin(a) * (Math.Cos(b)+2));//空间坐标y
float z = (float)(a/6+r*Math.Sin(b));//空间坐标 z
评论0