贝塞尔曲线,以及用鼠标和贝塞尔曲线交互的例子分享

发布网友

我来回答

1个回答

热心网友

转载


这段时间感觉很蛋疼。。虽然各种游戏玩的很开心。。还是多少要学习一下呗。。

做了个小东西,贴出来得瑟下。。能力有限,就先这么着了。

别试图找我要任何代码之类的。。我只是个amateur,这种帖子认真你就输了。。

别试图接分。。那是不可能的。。

当你对生活不满意,工作不满意,妹妹不满意。。。

如果不想付出金钱去改变,活该苦*。

如果不想付出精力去改变,活该苦*。

如果不想付出生命去改变,活该苦*。

如果不能忍受别人的鄙视,亲,请给别人一个不鄙视你的理由先。。


贝塞尔曲线

贝塞尔曲线(The Bézier Curves),是一种在计算机图形学中相当重要的参数曲线(2D,3D的称为曲面)。贝塞尔曲线于1962年,由法国工程师皮埃尔·贝塞尔(Pierre Bézier)所发表,他运用贝塞尔曲线来为汽车的主体进行设计。


给定点P0、P1,线性贝塞尔曲线只是一条两点之间的直线。这条线由下式给出:


当参数t变化时,其过程如下:

线性贝塞尔曲线函数中的t会经过由P0至P1的B(t)所描述的曲线。例如当t=0.25时,B(t)即一条由点P0至P1路径的四分之一处。就像由0至1的连续t,B(t)描述一条由P0至P1的直线。

二次曲线

二次方贝塞尔曲线的路径由给定点P0、P1、P2的函数B(t)追踪:

为建构二次贝塞尔曲线,可以中介点Q0和Q1作为由0至1的t:

* 由P0至P1的连续点Q0,描述一条线性贝塞尔曲线。

* 由P1至P2的连续点Q1,描述一条线性贝塞尔曲线。

* 由Q0至Q1的连续点B(t),描述一条二次贝塞尔曲线。

二次曲线看起来就是这样的:




三次曲线

为建构高阶曲线,便需要相应更多的中介点。对于三次曲线,可由线性贝塞尔曲线描述的中介点Q0、Q1、Q2,和由二次曲线描述的点R0、R1所建构。

P0、P1、P2、P3四个点在平面或在三维空间中定义了三次方贝塞尔曲线。曲线起始于P0走向P1,并从P2的方向来到P3。一般不会经过P1或P2;这两个点只是在那里提供方向资讯。P0和P1之间的间距,决定了曲线在转而趋进P3之前,走向P2方向的“长度有多长”。

曲线的参数形式为:


看起来就是这样的:


高阶曲线

更高阶的贝塞尔曲线,可以用以下公式表示:

用表示由点P0、P1、…、Pn所决定的贝塞尔曲线。则有:


更多的关于贝塞尔曲线的内容,你可以去查阅各种数学书。加油,求知的*年。

应用

在几乎所有的高级图像软件中,均使用到了三次贝塞尔曲线来实现“平滑曲线”绘制功能。例如Photoshop中的“钢笔”,CoralDraw中的“贝塞尔工具”,Fireworks中的“画笔”。

在编程中实现

计算机绘图

要“画”出贝塞尔曲线,一般需要进行较多的计算,然后绘制出来,类似这样:


绘制的代码可以在各类计算机图形学书籍中找到。



接下来的之后再传吧。今日图片上传量已经满啦

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com