线性代数DeBoor曲线与贝塞尔曲线算法区别?

前端(238)
贝塞尔曲线(5)
贝塞尔曲线扫盲
相信很多同学都知道“”这个词,我们在很多地方都能经常看到。但是,可能并不是每位同学都清楚地知道,到底什么是“贝塞尔曲线”,又是什么特点让它有这么高的知名度。
贝塞尔曲线的数学基础是早在 1912 年就广为人知的。但直到 1959 年,当时就职于雪铁龙的法国数学家&&才开始对它进行图形化应用的尝试,并提出了一种数值稳定的&。然而贝塞尔曲线的得名,却是由于 1962 年另一位就职于雷诺的法国工程师&&的广泛宣传。他使用这种只需要很少的控制点就能够生成复杂平滑曲线的方法,来辅助汽车车体的工业设计。
正是因为控制简便却具有极强的描述能力,贝塞尔曲线在工业设计领域迅速得到了广泛的应用。不仅如此,在计算机图形学领域,尤其是矢量图形学,贝塞尔曲线也占有重要的地位。今天我们最常见的一些矢量绘图软件,如 Flash、Illustrator、CorelDraw 等,无一例外都提供了绘制贝塞尔曲线的功能。甚至像 Photoshop 这样的位图编辑软件,也把贝塞尔曲线作为仅有的矢量绘制工具(钢笔工具)包含其中。
贝塞尔曲线在 web 开发领域同样占有一席之地。CSS3 新增了&&属性,它的取值就可以设置为一个三次贝塞尔曲线方程。在此之前,也有不少 JavaScript
动画库使用贝塞尔曲线来实现美观逼真的缓动效果。
下面我们就通过例子来了解一下如何用 de Casteljau 算法绘制一条贝塞尔曲线。
在平面内任选 3 个不共线的点,依次用线段连接。
在第一条线段上任选一个点 D。计算该点到线段起点的距离 AD,与该线段总长 AB 的比例。
根据上一步得到的比例,从第二条线段上找出对应的点 E,使得&AD:AB
连接这两点 DE。
从新的线段 DE 上再次找出相同比例的点 F,使得&DF:DE
到这里,我们就确定了贝塞尔曲线上的一个点 F。接下来,请稍微回想一下中学所学的极限知识,让选取的点 D 在第一条线段上从起点 A 移动到终点 B,找出所有的贝塞尔曲线上的点 F。所有的点找出来之后,我们也得到了这条贝塞尔曲线。
如果你实在想象不出这个过程,没关系,看动画!
回过头来看这条贝塞尔曲线,为了确定曲线上的一个点,需要进行两轮取点的操作,因此我们称得到的贝塞尔曲线为二次曲线(这样记忆很直观,但曲线的次数其实是由前面提到的伯恩斯坦多项式决定的)。
当控制点个数为 4 时,情况是怎样的?
步骤都是相同的,只不过我们每确定一个贝塞尔曲线上的点,要进行三轮取点操作。如图,AE:AB
= HJ:HI,其中点 J 就是最终得到的贝塞尔曲线上的一个点。
这样我们得到的是一条三次贝塞尔曲线。
看过了二次和三次曲线,更高次的贝塞尔曲线大家应该也知道要怎么画了吧。那么比二次曲线更简单的一次(线性)贝塞尔曲线存在吗?长什么样?根据前面的介绍,只要稍作思考,想必你也能猜出来了。哈!就是一条直线~
能画曲线也能画直线,是不是很厉害?要绘制更复杂的曲线,控制点的增加也仅仅是线性的。这一特点使其不光在工业设计领域大展拳脚,就连数学基础不好的人也可以比较容易地掌握,比如大多数平面美术设计师们。
上面介绍的内容并不足以展示贝塞尔曲线的真正威力。推广到三维空间的,以及更进一步的,早已成为当今计算机辅助设计(CAD)的行业标准,不论是我们平常用到的各种产品,还是在电影院看到的精彩大片,都少不了它们的功劳。
动态绘制贝塞尔曲线的
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:824905次
积分:10481
积分:10481
排名:第1041名
原创:245篇
转载:401篇
评论:169条
(2)(5)(6)(1)(4)(25)(21)(12)(12)(16)(6)(22)(33)(20)(31)(10)(4)(5)(19)(10)(4)(14)(16)(11)(24)(8)(63)(19)(25)(22)(44)(13)(7)(15)(15)(22)(14)(41)(11)详解贝塞尔曲线
查看: 89497|
评论: 0|原作者: hotchen
摘要: 作者:hotchen(转帖时显示的作者)
“贝塞尔工具” 是所有绘图类软件中最为重要的工具之一。“贝塞尔工具”可以创建比手绘工具更为精确的直线和对称流畅的曲线。对于大多数用户而言,“贝塞尔工具”提供了最佳的绘图控 ...
作者:hotchen(转帖时显示的作者)
“贝塞尔工具” 是所有绘图类软件中最为重要的工具之一。“贝塞尔工具”可以创建比手绘工具更为精确的直线和对称流畅的曲线。对于大多数用户而言,“贝塞尔工具”提供了最佳的绘图控制和最高的绘图准确度。
为使广大图形软件初学用户能了解“贝塞尔工具”的应用,本人这里以CorelDRAW这款软件为例,详细地剖析“贝塞尔工具”的使用方法。
“贝塞尔”是CorelDRAW中的称谓,在Photoshop、Illustrator、InDesign、QuarkXPress等软件中,称之为“钢笔工具”,虽然名称不一样,但作用是一致的,大家可以触类旁通,参照了解。
1、绘制线段
利用“贝塞尔工具”绘制线段的方式和“手绘工具”一样,能绘制直线、斜线。按住Ctrl键即限制水平、垂直或呈角度绘制线段,不同的是“贝塞尔工具”可以连续地绘制多段线段。以图01为例:先在屏幕某个位置单击鼠标以指定起始点,然后将鼠标移向(不必要按住不放)红圈1处单击指定第一个线段的终止点(在绘制多段线时,此终止点同时也为下一线段的起始点),然后继续将鼠标移向经圈2处单击,完成第二线段的绘制;以此类推,鼠标不断地在新的位置点击,就不断地产生新的线段。
图片如下:
如果是绘制封闭的对象,“贝塞尔工具”的绘制过程是:如图02所示,在红圈1处单击鼠标以指定起始点,然后移动鼠标在红圈2处单击,即绘制出一条线段;保持工具不变,继续将鼠标移向红圈3、红圈4、红圈5处单击,最后移向红圈1处,在起始点上单击鼠标完成闭合操作,一个多边形就完成了。
图片如下:
2、认识贝塞尔曲线
“贝塞尔曲线”由节点连接而成的线段组成的直线或曲线,每个节点都有控制点,允许修改线条的形状。
贝塞尔曲线由一个或多个直线段或曲线段组成,如图03,以节点标记路径段的端点。在曲线段上,每个选中的节点显示一条或两条方向线,方向线以方向点结束。方向线和方向点的位置决定曲线段的大小和形状,移动这些因素将改变曲线的形状。
图片如下:
贝塞尔曲线包括对称曲线和尖突曲线:对称曲线由名为对称点的节点连接,尖突曲线由角点连接,如图04。
图片如下:
当在对称了点上移动方向线时,将同时调整对称节点两侧的曲线段;相比之下,当在角点上移动方向线时,只调整与方向线同侧的曲线段,如图05。
图片如下:
贝塞尔曲线可以是闭合的,没有起点或终点(例如圆),也可以是开放的,有明显的终点(例如波浪线)。
利用“贝塞尔工具”配合“形状工具”,可以创造任意复杂程度的图形对象,如图06。
图片如下:
3、绘制贝塞尔曲线
从工具箱中调用“贝塞尔工具” ,在起始点按下鼠标左键不放,将鼠标拖向下一曲线段节点的方向,此时在起始点处会出现控制线;松开鼠标,在需要添加节点处按下鼠标并保持不放,将鼠标拖向再下一曲线段节点的方向,并观察出现的曲线是否和理想中的曲线一致,如果与理想中的曲线弧度不相一致,可以在不松开鼠标的状态下,移动鼠标使其适合所需要的弧度,如图07。
图片如下:
如果曲线很复杂,需要多个曲线段才能组成:可以接上一步操作,在新的节点位置按下鼠标并将鼠标拖向再下一节点的方向;如果节点的下一绘制工作是直线段,可以双击最后的曲线段节点,便可以开始新的线段或曲线段绘制,如图06。
在绘制曲线的过程中,双击最后一个节点,可以改变下一节点的伸展属性,使其和起始点相一致,以便开始新的曲线或直线段的绘制,如图08中红圈所示处。
图片如下:
另外,在使用“贝塞尔工具” 绘制曲线时,如果新指定的节点位置不符合设想,可以按住Alt键不放,移动到新的位置,如图09。
图片如下:
由于“贝塞尔工具” 的重要性,初学者应该花上一点时间对此工具多做练习。练习开始时,可以选择字母或一些简单的图形为样例,沿着边缘进行描绘,如图10。
图片如下:
在进行“贝塞尔工具” 练习过程中,可以配合使用“缩放工具”中的“放大(快捷键:F2)” 、“缩小(快捷键:F3)” 和“形状工具(快捷键:F10)” ,如图11,为使曲线与原对象更嵌合,按“F2”键将窗口屏幕进行了放大。
图片如下:
“形状工具(快捷键:F10)” 与“贝塞尔工具” 常相互配套使用,每有“贝塞尔工具”节点定位不准或控制线偏移时,都可以用“形状工具”移动节点或控制线上的控制点,及时地对“贝塞尔曲线”进行纠正,如图12。
图片如下:
4、修饰贝塞尔曲线
在使用“贝塞尔曲线”工具绘制曲线时,就算再熟练的操作人员,也无法做到次次得心应手,实际工作中,经常需要对“贝塞尔工具”绘制的曲线进行一些细节上的调节。
调节和修饰“贝塞尔曲线”都由“形状工具(快捷键:F10)” 完成(Photoshop、Illustrator在修饰贝塞尔曲线时,都用钢笔工具完成)。
■ 直线转曲线
要改变直线线段为曲线,可以用“形状工具(快捷键:F10)” 在要转换为曲线的直线段上单击,然后点击属性工具栏中的“转换直线为曲线”按钮 ,直线段即被转换为曲线,并出现控制线,以便进一步调整,如图13。
图片如下:
■ 曲线转直线
如果要改变曲线为直线,可以用“形状工具(快捷键:F10)” 在要转换为直线的曲线段上单击,然后点击属性工具栏中的“转换曲线为直线”按钮 ,直线段即被转换为曲线,如图14。
图片如下:
■ 对称节点转尖突节点
对称节点可以同时控制节点两端的曲线,而尖突节点只能控制一端的曲线。在实际工具中,有很多的时间需要将对称节点转换成尖突节点。如果要将对称节点转换成尖突节点,可以用“形状工具(快捷键:F10)” 选中对称节点(如图15中红圈所示处的节点),然后点按属性栏中的“使节点成为尖突”按钮 ,对称节点即转换成尖突节点。
图片如下:
■ 尖突节点转对称节点
尖突节点转对称节点操作方法与上述方法相同,只是选取尖突节点后,用“形状工具(快捷键:F10)” 点按属性栏中的“生成对称节点”按钮 ,尖突节点即被转换成对称节点,如图16。
图片如下:
■ 闭合曲线
使用“贝塞尔工具”绘制曲线时,如果终止点没有与起始点重合,就不会形成封闭的路径,在默认的状态下就也无法对该对象进行色彩填充。当要闭合一个曲线对象时,可以将鼠标移向起始点,此时鼠标会变成 形符号,表示可以进行曲线闭合,或点按属性工具栏中的“自动闭合曲线”按钮 ,使曲线成为一个封闭的路径对象,以便进行色彩填充,如图17。
图片如下:
■ 选取节点
曲线线段与曲线线段之间的节点,都可以当作对象一样被选取。选择节点时,用“形状工具(快捷键:F10)” 在要选取的节点上单击即可选取该节点;被选取的节点会以小黑块的显示以区别其他节点。如果要选取多个节点,可以按住Shift键再逐次地用“形状工具(快捷键:F10)” 单击要选取的节点,如图18。
图片如下:
■ 断开节点
直线线段、曲线、闭合的曲线路径,都可以使其断开。当要对某一个线段进行断开时,可以使用“形状工具(快捷键:F10)”在要断开的节点上单击以选择该节点,然后单击属性工具栏上的“分割曲线”按钮 ,该线段即被分割,如图19(右边为分割后再拆分,成为两个对象)。
图片如下:
分割后的对象,如果是线段,就会被分割成两个呈组合状态的对象,按下“排列”菜单中的“拆分 曲线(快捷键:Ctrl + K)”命令,两个对象就会被分离出来。
如果将封闭的曲线路径对象中的某个节点断开,该对象即被改变成未闭合的对象,将无法填充颜色,并且已填充的颜色也会无法显示,如图20。
图片如下:
■ 添加、删除节点
利用“形状工具(快捷键:F10)”可以方便地在线段或曲线上添加任意的节点:用“形状工具(快捷键:F10)”在线段或曲线上要添加节点的地方单击,然后点按属性工具栏上的“添加节点”按钮 ,或用“形状工具”在要添加节点的地方双击,即添加一个新节点。新添加的节点都为尖突节点,如图21。
图片如下:
如果要删除线段或曲线上的某个节点,可以先用“形状工具(快捷键:F10)”选取该节点,然后点按属性工具栏中的“删除节点”按钮 ,或按下键盘上的“Delete”键,或用“形状工具”双击要删除的节点,即可以将节点删除。删除节点后,CorelDRAW会对对象进行一些智能化平滑处理,如图22。
图片如下:
■ 延长闭合曲线
延长闭合曲线功能与自动闭合曲线功能一样,但自动闭合功能更方便一些。如果要使用“延长曲线使之闭合”功能,可以用“形状工具”选取曲线的起始节点,再按住Shift键选取曲线的终止节点,然后点按属性栏上的“延长曲线使之闭合”按钮 ,开放的曲线路径就会闭合成封闭的路径,如图23。
图片如下:
■ 反转曲线的方向
开放的曲线都有起始节点和终止节点,起始节点是开始绘制曲线时的第一个节点,终止节点是曲线路径没有闭合前的最后一个节点。在屏幕显示上,所有未选取的节点都用小方块显示,但起始节点的显示小方块要比其他节点的显示小方块略大一些,由此可以让操作者区别起始节点和其他节点。反转曲线的方向就是将起始节点和终止节点进行互相调换,使起始节点变成终止节点,终止节点变成起始节点,如图24。
图片如下:
■ 提取子路径
在复杂的封闭路径对象中,会存在多个路径。最外层的路径为主路径,外层内部的路径全部都为子路径,如图25。
图片如下:
如果要提取复杂路径中的子路径以作他用,可以用“形状工具”在要提取的子路径上任意选取一个节点,然后点按属性栏上的“提取子路径”按钮 ,该路径即被分离出来,而其原对象的其他路径仍未做改变,如图26。
图片如下:
■ 缩放路径
所有的路径对象,都可以利用节点来控制放大或缩小操作:当要对某个路径进行缩放时,调用“形状工具”选取要缩放的所有节点,然后按下属性栏上的“伸长和缩短节点连线”按钮,该对象的四周就会出现8个控制点,即可以将路径对象当作普通对象进行缩放操作,如图27(图中为强化显示,将8个控制点改成了红色,实际上为黑色)。
图片如下:
■ 旋转和倾斜节点
封闭路径上的节点可以缩放,当然也可以旋转或倾斜:用“形状工具(快捷键:F10)” 选取要旋转或倾斜的路径上的所有节点,按下属性工具栏中的“旋转和倾斜节点连线”按钮 ,该路径对象就可以像普通对象一样,用鼠标拖动四个角上的旋转箭头 进行旋转,或拖动四条边上的水平倾斜箭头 或垂直倾斜箭头 进行拉伸变形,如图28。
图片如下:
■ 选择全部节点
如果对象的节点非常复杂,而现在要将其所有节点全部选取,可以:用“形状工具(快捷键:F10)” 在对象的外围按下并拖动鼠标,拉出一个比对象略大的矩形框,使对象被“罩”在框内,释放鼠标后,对象上的所有节点就都被选中;也可以先随意地选取某一个节点,然后点按属性栏上的“选择全部节点”按钮 ,同样可以将该对象的所有节点一次性选中,如图29。
图片如下:
■ 反射节点
反射节点模式允许编辑节点,并使对应的节点上按相反的方向也发生同样的编辑。例如,可以将节点向右移动,它的对应节点将向左移动相同的距离。如果要为曲线对象造形并使更改从左到右或者从上到下镜像,“反射节点”的功能就很有用。&
使用“反射节点”通常情况下从一个多少有些对称的曲线对象开始,或者从两个曲线对象(其中第二个对象是通过镜像第一个对象而创建的)开始:先选取要反射运动的节点,如图30,然后按下属性工具栏中的“水平反射节点”按钮 或“垂直反射节点”按钮 ,再用鼠标拖动选取的多个节点中的某一个节点,另一对象就也会做出相同但方向相反的改变,如图31为“水平反射节点”,图32为“垂直反射节点”。
图片如下:
图片如下:
图片如下:
■ 对齐节点
有些时候,绘制的曲线节点可能需要处于同一水平线或同一垂直线上,此时“对齐节点”的功能就可以排上用场了:选取要进行水平或垂直对齐的节点(必须两个以上),按下属性栏中的“对齐节点”按钮,此时会弹出一个对话框,询问要进行那一种的对齐方式,如图33。
图片如下:
“水平对齐”会将选取的多个节点对齐到同一水平线;“垂直对齐”则将选取的多个节点对齐到同一垂直线;“对齐控制点”会以控制点为基准进行对齐。如图34,是将节点进行水平对齐的操作结果。
图片如下:
不管采用何种对齐方式,在对齐节点的过程中,都是以最后选取的节点为对齐依附点,先选取的节点会向最后选取的节点进行对齐。
如果在弹出的对话框中将“水平对齐”和“垂直对齐”同时勾选,所有选取的节点将会对齐到最后被选取的节点上。
以上对曲线的编辑,都是使用“形状工具”完成,如果不太熟悉上面内容中所说的各操作所用的功能按钮在哪里,可以在调用“形状工具”时,将鼠标移动到属性栏某个按钮上稍作停留,屏幕上即会出现该按钮的工具名称提示。
部分带宽支持: |贝塞尔曲线_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
贝塞尔曲线
上传于||暂无简介
阅读已结束,如果下载本文需要使用0下载券
想免费下载更多文档?
定制HR最喜欢的简历
下载文档到电脑,查找使用更方便
还剩8页未读,继续阅读
定制HR最喜欢的简历
你可能喜欢贝塞尔曲线详解_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
贝塞尔曲线详解
上传于||文档简介
&&贝​塞​尔​曲​线​详​解
阅读已结束,如果下载本文需要使用0下载券
想免费下载更多文档?
定制HR最喜欢的简历
下载文档到电脑,查找使用更方便
还剩28页未读,继续阅读
定制HR最喜欢的简历
你可能喜欢ps中的贝塞尔曲线是做什么用的?_百度知道

我要回帖

更多关于 android 贝塞尔曲线 的文章

 

随机推荐