其他曲线

许多曲线函数在对象建模、动画轨迹的描述、数据和函数的图形化以及其他图形应用中是十分有用的。常见的曲线包括圆锥曲线、三角和指数函数、概率分布、通用多项式和样条函数。这些曲线的显示可采用类似于前面讨论的圆和椭圆函数来生成。沿曲线轨迹的位置可直接从表达式y =f (x)或参数方程中得到。此外,还可以使用增量中点算法绘制用隐式函数f(x,y)

= 0描述的曲线。

显示一指定的曲线函数的简单方法是使用直线段来逼近曲线。这时,对于要得到沿曲线轨迹的等距线段的端点位置,则可以使用参数表达式。也可以按曲线的斜率选择独立变量,而从显式表达式中生成等距位置。假如y = f(x)斜率的绝对值小于1,就选择x作为自变量并对相等的x增量计算y值;当斜率绝对值大于1时,要使用反函数x = f-1(Y)并在相同的y步长中计算x的值。

使用直线或曲线逼近法可以图示离散坐标点的数据集,我们可以使用直线段来将离散点连结在一起,或采用线性回归(最小二乘法),从而通过单个直线来拟合数据集。非线性最小二乘法用来显示具有某些拟合函数(通常是多项式)的数据组。

像圆和椭圆一样,许多函数具有对称性,从而可以减少曲线轨迹上坐标位置的计算量。例如,正态分布函数关于中心位置(均值)是对称的,沿正弦曲线一个循环的所有点可以从90°区间内的点生成。

圆锥曲线

通常,我们可以使用二次方程来描述圆锥曲线(conic section):

其中,参数A, B, C, D, E和F的值决定所要显示的曲线类型。给定这组系数,就可以通过对判别式B2 = -4AC求值来确定所要生成的特定圆锥曲线:

例如,当A = B = 1, C=0, D = -2xc , E=-2yc和F=x2c+y2c-r2时,就得到圆方程(3.26 )方程(3.52)也能描述退化的圆锥曲线:点和直线。

在有些应用中,圆弧和椭圆弧可以方便地用起始角和终止角表示,如图3.29所示。这些弧有时也用它们的端点坐标位置来定义。两种情况下我们都可以使用修改的中点方法来生成弧,或显示一组逼近直线段。

椭圆、双曲线和抛物线在某些动画应用中有独特的用处。这些曲线可以描述受到地球引力、电磁场和原子力作用的物体的运行轨道和其他运动。例如:太阳系的平面轨迹是椭圆,进入均匀地球引力场的物体沿抛物线轨迹运动。对于负y方向作用的引力场,图3.30给出了标准位置上的抛物线轨迹。显示物体的抛物线轨迹方程可以写为:

常数a和b由物体的初始速度v0和均匀引力引起的加速度g决定。我们也可利用以秒计量的时间参数t.根据初始发射点的参数方程来描述这种抛物线轨迹:

其中,vx0和vy0是初始速度分量,g的值在地球表面约为980 cm/s2。沿抛物线轨迹的物体位置就可以按照选定的时间步长计算出来。

双曲线运动(参见图3.31 )发生在有关带电粒子碰撞的问题以及某些引力问题中。例如,彗星或陨星绕太阳的运动是沿双曲线轨迹,并且向外层空间逃逸而从不返回。描述物体运动的特定分支(图3.31中的左边或右边曲线)取决于问题中涉及的力。我们可以将图3.31中双曲线(中心位于原点)的标准方程写为

对于左分支,x =< -rx;对于右分支,x>=rx。由于这个方程与标准椭圆方程(3.39)之间的不同仅在于x2和y2项的符号,因此只需对椭圆算法进行细小的改动就可以产生双曲线轨迹上的点。

抛物线和双曲线具有对徐轴。例如,由方程( 3.55)描述的抛物线关于下列轴是对称的:

中点椭圆算法中的方法可直接用于在下面的两个区域内获得抛物线和双曲线轨迹上对称轴一侧的点:

(1)曲线斜率的绝对值小于1;

(2)曲线斜率的绝对值大于1。为此,首先选择方程(3.52)的合适形式,然后利用所选的函数来建立两个区域内决策参数的表达式。

多项式和样条曲线

x的n次多边形函数可以定义为

其中,n为非负整数,ak是常数且an != 0,当n = 2时得到二次曲线,n = 3时为三次多项式,n = 4时为四次曲线,等等;当n = 1时得到直线。多项式用于包括对象形状设计、动画轨迹的确定以及在离散数据点集合中数据趋向的图形化等许多图形应用中。

对象形状或运动轨迹的设计中一般先通过指定少量的点来定义一个大概的曲线轮廓,然后利用多项式来拟合选定的点。曲线拟合的一种方法是在每对指定点之间构造三次多项式曲线段,每个曲线段可以通过参数形式描述:

其中,参数u在0和1.0之间变化。参数方程中u的系数值根据曲线段的边界条件确定。边界条件之一是两个相邻曲线段具有公共端点,另一个条件是在边界上匹配两条曲线的斜率,以便得到连续的平滑曲线(参见图3.32)。利用多项式曲线段形成的这种连续曲线称为样条曲线(spline curve ),简称为样条。还有许多其他的建立样条曲线的方法,我们将在第8章研究各种样条的生成方法。

原文:http://blog.csdn.net/heyuchang666/article/details/51324095

计算机图像双曲线的代码,计算机图形学(二)输出图元_6_OpenGL曲线函数_5_其他曲线...相关推荐

  1. 计算机图形学(二)输出图元_6_OpenGL曲线函数_5_其他曲线

    其他曲线 许多曲线函数在对象建模.动画轨迹的描述.数据和函数的图形化以及其他图形应用中是十分有用的.常见的曲线包括圆锥曲线.三角和指数函数.概率分布.通用多项式和样条函数.这些曲线的显示可采用类似于前 ...

  2. 计算机图形学二维变换知识点,计算机图形学 二维变换及二维.ppt

    计算机图形学 二维变换及二维 第三章 二维变换及二维观察 本章主要内容 3.1二维图形的基本变换 3.2窗口视图变换 3.3复合变换 3.4二维图形裁剪 3.5本章小结 3.1 二维图形的基本变换 3 ...

  3. 【XJTUSE计算机图形学】第三章 几何造型技术(2)——Bezier 曲线与曲面

    文章目录 [XJTUSE计算机图形学]第三章 几何造型技术(2)--Bezier 曲线与曲面 Bezier 曲线与曲面 Bezier 曲线的定义与性质 定义 习题 Bernstein基函数性质 Bez ...

  4. 计算机图形学-二维图形变换 笔记总结与代码实战

    文章目录 1.向量基础知识 2.图形坐标系 3.二维图形变换原理 4.二维图形几何变换 5.窗口视区变换 基本二维几何变换代码 二维复合变换实战-五星红旗绘制 1.向量基础知识 为什么向量如此重要:在 ...

  5. 计算机图形学画圆vc代码,计算机图形学实验--完整版-带结果--vc++实现.doc

    计算机图形学实验--完整版-带结果--vc实现 计算机图形学实验报告 信息学院计算机专业 20081060183 周建明 综括: 利用计算机编程语言绘制图形,主要实现以下内容: (1).中点算法生成任 ...

  6. 计算机图形学真实感显示代码,计算机图形学实验 - 真实感图形场景的生成

    <计算机图形学实验 - 真实感图形场景的生成>由会员分享,可在线阅读,更多相关<计算机图形学实验 - 真实感图形场景的生成(4页珍藏版)>请在人人文库网上搜索. 1.计算机图形 ...

  7. 画毛毛虫代码计算机图形学,考试计算机图形学考试计算机图形学.docx

    考试计算机图形学考试计算机图形学 计算机图形学大题第四章1个.第六章2个第七章1个第一章4.比较个人计算机与工作站的图形功能个人计算机仅限于符合二维,又是单任务操作方式工作站可处理二.三维,多任务操作 ...

  8. 计算机图形学二维图形基本变换实验原理,计算机图形学实验:二维图形变换.docx...

    计算机图形学实验:二维图形变换.docx (9页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 19.90 积分 实验三 二维图形变换一.实验任务1. 通 ...

  9. 计算机图形学基础教程代码,计算机图形学基础教程

    <计算机图形学基础教程>由会员分享,可在线阅读,更多相关<计算机图形学基础教程(19页珍藏版)>请在人人文库网上搜索. 1.第一章 1. 计算机图形学的主要研究内容是什么? 答 ...

最新文章

  1. spring源码分析之定时任务概述
  2. hdu 1423 最长公共递增子序列
  3. find 是区分大小写的。对于不区分大小写的写法(转载)
  4. java 接口编程_JAVA面向接口编程
  5. 逗比学树莓派之GPIO
  6. CSS属性值之百分数
  7. css 语音,纯CSS打造(无图像无js)的非常流行的讲话(语音)气泡效果
  8. 运维实战案例之“Too many open files”错误与解决方法
  9. 弹出层之3:JQuery.tipswindow
  10. 大麦盒子(domybox)无法进入系统解决方案!【简单几步】
  11. Unity使用Remote直接在手机上调试游戏
  12. IIS 部署的网站无法启动
  13. 台式机连接校园网-UPC-lan-login
  14. 拼多多砍价背后的逻辑
  15. 今天很悲剧,心情很郁闷
  16. [面试系列]富途前端社招面试
  17. 腾讯云部署Hebe节点教程
  18. 郊区春游(状压dp)
  19. B2G:来自Web平台的挑战者
  20. ABBYY OCR SDK免费试用了!

热门文章

  1. 水木清华,telnet挂积分,工具
  2. 2022国赛D题气象报文信息卫星通信传输参考代码及思路
  3. 站上智能汽车产业高地,合肥到底是“赌”来的,还是另有蹊径?
  4. PHP 按城市名获取首字母并且分组排序
  5. 调用Tushare数据库绘制K线图
  6. TOJ 1717 WOJ
  7. java抓取数据包查询12306余票信息
  8. mybatis中的关联查询
  9. 在成为Android工程师的一年里,我经历了什么?
  10. 宿州学院计算机录取分数线,2017宿州学院录取分数线