【图形学】Bézier 曲面建模及显示

  • 1.绘制目标
  • 2.核心代码
  • 3.运行结果

1.绘制目标

Bézier 曲面建模及显示
‘x’:绕x轴旋转
‘y’:绕y轴旋转
‘z’:绕z轴旋转
‘r’:复原

2.核心代码

// Begin globals.
// Initial control points.
static float controlPoints[6][4][3] =
{ TODO: set the values of the control points here {{-3.0, -2.0, 5.0},       {-0.25, 2.0, 5.0},  {0.25, 3.0, 5.0},   {3.0, 4.0, 5.0}},   {{-3.0, -1.0, 3.0},     {-0.25, 3.0, 3.0},      {0.25, 4.0, 3.0},   {3.0, 3.5, 3.0}},{{-3.0, 0.0, 1.0},     {-0.25, -1.0, 1.0}, {0.25, 0.0, 5.0},   {3.0, 2.0, 5.0}},   {{-3.0, -1.5, -1.0},    {-0.25, -0.8, -1.0},    {0.25, 0.5, -1.0},  {3.0, 1.5, -1.0}},{{-3.0, -0.5, -3.0},  {-0.25, 0.0, -3.0}, {0.25, 1.0, -3.0},  {3.0, -0.2, -3.0}}, {{-3.0, -0.8, -5.0},    {-0.25, -1.0, -5.0},    {0.25, -0.5, -5.0}, {3.0, 2.0, -5.0}}
};// Initialization routine.
void init(void)
{glClearColor(1.0, 1.0, 1.0, 0.0);glEnable(GL_DEPTH_TEST); TODO: Specify and enable the Bezier surface.glMap2f(GL_MAP2_VERTEX_3, 0, 1, 12, 6, 0, 1, 3, 4, &controlPoints[0][0][0]);glEnable(GL_MAP2_VERTEX_3);
} TODO: Specify the virtual camera here gluLookAt(0.0, 0.0, 10.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0);//// TODO: Draw the Bezier surface using a mesh approximation.glMapGrid2f(24, 0.0, 1.0, 24, 0.0, 1.0);glEvalMesh2(GL_LINE, 0, 24, 0, 24);/// TODO: Specify the perspective projection here. /gluPerspective(80.0, float(w) / float(h), 1.0, 20.0);///case 'x': TODO: Update the Xangle here. Xangle += 1.0f;glutPostRedisplay();break;case 'y': TODO: Update the Yangle here. Yangle += 1.0f;glutPostRedisplay();break;case 'z': TODO: Update the Zangle here. Zangle += 1.0f;break;case 'r': TODO: Reset the X,Y, Z angle here. Xangle = 30.0;Yangle = 0.0;Zangle = 0.0;glutPostRedisplay();break;

3.运行结果


【图形学】Bézier 曲面建模及显示相关推荐

  1. matlab曲线导入proe,ProE与Matlab混合曲面建模

    ProE与Matlab混合曲面建模 ProE 在曲面设计时的弱点是它不能直接根据曲面方程来生成曲面; 用于生成曲线的方程也因其提供的函数有限而在复杂程度上受到限制.因此, 在生成有严格数学描述的复杂曲 ...

  2. Bézier曲线 和 Bézier曲面 ( 贝塞尔曲线 和 贝塞尔曲面 )

    Bézier曲线 定义 给定空间n+1个点的位置矢量Pi(i=0,1,2-),则Bezier参数曲线上各点坐标的插值公式是:P(t)=∑i=0nPiBi,n(t),t∈[0,1]P(t)=\sum_{ ...

  3. 红曲面怎么做_「曲面建模」CREO陶瓷小摆件的曲面建模,怎么样分析和拆解面...

    本案例讲解一个陶瓷摆件鱼的曲面建模,这个是还是有一定难度的,难在对面怎么拆解,其实命令都是常用的曲面命令,关键看你怎么活用,怎么找出曲面构建中的问题点在哪里?下面用两种方法讲解本案例. 参考素材. 完 ...

  4. 样条曲面_SolidWorks肥皂块曲面建模,你的肥皂掉了

    1.考查重点 本文将对肥皂块进行曲面建模,主要演示样条曲线(套合).放样曲面.扫描曲面.填充曲面等知识点的运用,由于肥皂为前后左右对称,因此只建4分之1再镜像,产品效果图如下所示. 2. 实例操作 步 ...

  5. 基于matlab和proe的曲面建模,Proe曲面建模经典习题:创建电话

    原标题:Proe曲面建模经典习题:创建电话 上一期我们通过曲面建模的方式创建了一个灯罩,这一期就提高点难度,创建一个电话吧!本教程也涉及到不少曲面建模的命令,比如可变截面扫描.边界混合以及曲面修剪和合 ...

  6. PCL学习——基于B样条曲线的曲面建模程序中报错:Expression:vector subscript out of range

    本人在学习PCL中基于B样条曲线的曲面建模时,按照教程中的代码进行实操时程序报错 Expression:vector subscript out of range 经研究排查,出现此问题是由于程序中某 ...

  7. 什么是混合实体/曲面建模?有什么优势?

    目前,几乎所有的建模程序都采用边界表示法来表达实体.简言之,即由确定了该体积外边界的多个曲面来表达某一对象.因而,关于实体对曲面建模的认识较为关键的原则,就是在时间充分.工具组合适的前提下,那些能利用 ...

  8. 3D软件中实体建模与曲面建模有什么区别?

    实体建模和曲面建模是3D设计中较为常用的两种三维建模方式,那么这两者在实际的绘图操作中有什么区别呢?又该如何区分使用这两种三维建模方式呢?下面就让小编以浩辰3D软件为例给大家详细介绍一下实体建模与曲面 ...

  9. 【原创】SolidWorks曲面建模

    文章目录 曲面建模 鼠标 瓜子 钟表 水果盘 带字球网 拉链 鞍形网 鸢尾花纹章 足球 波纹弹簧垫圈&铁丝网 椅子 金箍 格式 格式 简易建模 剪刀 Simulation功能 电热管热力分析 ...

最新文章

  1. 东莞厚街工业机器人展会_工业机器人四大家族齐聚!东莞将在12月举办智博会...
  2. php单表显示动态下拉框,PHP:使用optgroup动态下拉列表
  3. [C++11]委托构造函数
  4. 51nod1601-完全图的最小生成树计数【Trie,分治】
  5. matlab 空矩阵耗时,性能 – 更快的方式通过空矩阵乘法初始化数组? (Matlab)
  6. mysql 21天_把整个Mysql拆分成21天,轻松掌握,搞定(中)
  7. 根据大小分割大文本_值得一看的文本检测方法
  8. 俄罗斯:国家机构今年已遭1000多万起网络攻击
  9. 拓端tecdat|基于R统计软件的三次样条和光滑样条模型数据拟合及预测
  10. 三类IP地址ABC类的划分
  11. 银行卡号自动识别,包括银行名称、英文缩写代号、LOGO
  12. HG_REPMGR configure配置
  13. 如何从用户旅程图中挖掘差异化需求?
  14. SpringBoot Actuator未授权访问漏洞修复
  15. Python beautiful soup解析html获得数据
  16. 【2021年4月电影网络关注度榜】《我的姐姐》登顶热度榜及票房榜
  17. 苏爱华奋斗撒酒疯快乐到家斯卡拉减肥倒萨
  18. 求整型矩阵主对角线元素之和
  19. 可靠性测试主要注意点
  20. 小谈16位汇编NEG求补指令

热门文章

  1. DVDFab Photo Enhancer AI (AI图片无损放大软件)官方中文版V1.0.2.3 | 图片无损放大器
  2. 倒计时操作 CountDownTimer
  3. SLAM算法学习(2): SLAM原理理顺
  4. 反转字符串中的元音字母
  5. CSS3中的变形处理——transform功能(旋转、缩放、倾斜、移动)
  6. PowerDesigner的下载和安装
  7. LSP分两种:一种是IFS LSP,一种是non IFS LSP.
  8. 数据结构与算法(十九)——动态规划
  9. matlab中的括号
  10. c++ 动态规划-二维背包 and 潜水员问题