游戏开发论坛

 找回密码
 立即注册
搜索
查看: 3927|回复: 6

求助:如何把一根曲线(如正弦)旋转一周得到一封闭几何体

[复制链接]

13

主题

49

帖子

55

积分

注册会员

Rank: 2

积分
55
QQ
发表于 2005-12-5 10:32:00 | 显示全部楼层 |阅读模式
[em2]

0

主题

53

帖子

53

积分

注册会员

Rank: 2

积分
53
发表于 2005-12-5 18:11:00 | 显示全部楼层

Re:求助:如何把一根曲线(如正弦)旋转一周得到一封闭几何

曲线旋转是得到曲面吧~~~

汗~~~

13

主题

49

帖子

55

积分

注册会员

Rank: 2

积分
55
QQ
 楼主| 发表于 2005-12-6 17:37:00 | 显示全部楼层

Re: 求助:如何把一根曲线(如正弦)旋转一周得到一封闭几

是曲面啊, 就是问具体编程的步骤,比如说点的数组等技巧,或Opengl中某些函数?

5

主题

217

帖子

222

积分

中级会员

Rank: 3Rank: 3

积分
222
发表于 2005-12-6 20:44:00 | 显示全部楼层

Re:求助:如何把一根曲线(如正弦)旋转一周得到一封闭几何

你听说过有这样的函数?
旋转曲面自己构造行不行.......
在glu和glut里有些构造好的二次旋转面可以用。
但没有任意的.而且程序中目前也不可能实现任意的旋转曲面.

4

主题

65

帖子

65

积分

注册会员

Rank: 2

积分
65
QQ
发表于 2005-12-6 21:17:00 | 显示全部楼层

Re:求助:如何把一根曲线(如正弦)旋转一周得到一封闭几何

没做过,不过思路如下,不知道是否正确
y=sin(x)  x=<x0,x1>
z=0
假定绕x轴旋转
则曲面方程为
x=x;
y=sin(x)*cos(theta);
z=sin(x)*sin(theta);
theta=<0,360>
x=<x0,x1>
//////////////////////
//code
for(_x......segment number?)
for(theta.....slice)
{
     x=_x;
     y=sin(_x)*cos(theta);
     z=sin(_x)*sin(theta);
      //store the vetices
      ...........
}
//只不过这个在边界的地方要缝合而已
//................................................
//顶点可用 vertices[segments*slices]这种存储
//然后再索引连起来就可以
//..............

13

主题

49

帖子

55

积分

注册会员

Rank: 2

积分
55
QQ
 楼主| 发表于 2005-12-7 14:06:00 | 显示全部楼层

Re:求助:如何把一根曲线(如正弦)旋转一周得到一封闭几何

re:楼上的仁兄,问题是用glBegin(TRIANGLE_STRIP)的话,索引数组怎么确定, 一个三角形相邻的顶点分别在上下两个Segment,就是这里想不通,

4

主题

18

帖子

24

积分

注册会员

Rank: 2

积分
24
发表于 2005-12-20 09:31:00 | 显示全部楼层

Re:求助:如何把一根曲线(如正弦)旋转一周得到一封闭几何

提供一个思路:
先自己画一个圆柱体,是用glBegin(TRIANGLES)画的,自己先随便确定圆柱的半径,但是高度要和你要旋转曲线旋转后形成的曲面的高度一致。用链表的形式储存每个三角形的顶点坐标,再对各顶点坐标进行调整,再将个三角形细分,取每个三角形的中点,将一个三角形分成四个三角形,再对新形成的三个顶点调整到所需要的。然后重复以上的步骤达到你所需要的精度。
只是一个思路,不知道对不对,我用这个画过一个半球。
缺点:储存数据大,不是用triangle_strip而是triangles;由于开始的圆柱起始构造的不好可能导致最后形成的点不均匀(即有些地方点密集有些地方点疏松)。
希望能人给出解决办法!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2026-1-23 00:57

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表