opengl绘制曲面

DukeSoft 2013-03-25 10:02:57
已得到很多三维坐标点,怎么用OpenGL画出曲面呀?
...全文
254 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
DukeSoft 2013-03-26
  • 打赏
  • 举报
回复
画不出来啊!!
ri_aje 2013-03-25
  • 打赏
  • 举报
回复
gl 的完整例子程序,你只能 google 了。我可以给你写出核心循环的架子。 以下假设 xy 平面 100x100 的网格以及其对应的点, points [100][100]; 所有四边形法线指向 +z 方向。

glBegin(GL_QUADS);
for (size_t y = 0, Y = 100; y != Y-1; ++y)
for (size_t x = 0, X = 100; x != X-1; ++x)
{
 glVertex3d(points[y  ][x  ][0],points[y  ][x  ][1],points[y  ][x  ][2]);
 glVertex3d(points[y  ][x+1][0],points[y  ][x+1][1],points[y  ][x+1][2]);
 glVertex3d(points[y+1][x+1][0],points[y+1][x+1][1],points[y+1][x+1][2]);
 glVertex3d(points[y+1][x  ][0],points[y+1][x  ][1],points[y+1][x  ][2]);
}
glEnd();
DukeSoft 2013-03-25
  • 打赏
  • 举报
回复
所有的点都保存在vector<vector<Point>> net_points中,其中Point是一个点类,包含x,y,z。求法向量的函数也写好了
DukeSoft 2013-03-25
  • 打赏
  • 举报
回复
理解对了的。就是能具体一点嘛,我比较菜,向基本的参数什么的都不怎么会设置,之前的所有准备工作都完成了,就差最后用OpenGL绘制,没一点头绪的感觉。谢谢了!
ri_aje 2013-03-25
  • 打赏
  • 举报
回复
不太确定我是否理解正确了,好像就是网格化 xy 平面,对每个网格点能够获得一个 z 值,这样每一个网格点生成一个三维空间点。如果是这样的话,按四边形画就可以。 glBegin(GL_QUADS); glVertex, v0, v1, v2, v3; glEnd(); 其中 v0~3 的顺序需要按逆时针出现,时针方向根据四边形法线向量方向按右手法则确定。
DukeSoft 2013-03-25
  • 打赏
  • 举报
回复
是根据已知点进行曲面样条函数拟合,得到网格化点的z坐标
ri_aje 2013-03-25
  • 打赏
  • 举报
回复
这些坐标本身有组织结构吗?有的话,他们是构成多边形吗?

64,683

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧