图形学3:样条曲线、裁剪算法
2016-06-19 本文已影响537人
susu2016
最后一道已知大题是在Bezier曲线、B样条曲线、多边形裁剪中出的画图题,务必记牢公式~~~
Bezier曲线和曲面
表达式:
B-样条曲线
表达式:
二次B-样条曲线
三次B-样条曲线
起点在ΔV0V1V2底边V0V1的中线,离V1点1/3处P(1) ,终点在ΔV1V2V3底边中线,离V2点1/3处,L1,L2自然连接,且有2阶连续
Bezier样条曲线和B-样条曲线的比较
- 对同一特征多边形,B样条曲线比Bezier曲线更逼近特征多边形。
- Bezier曲线的次数与所给定的控制点密切有关,构成样条曲线较困难,而B样条曲线本身为样条曲线。
- B样条有更好的局部修改性,而Bezier有更好的端点性。
多边形的裁剪
1.Sutherland-Hodgeman多边形裁剪:
(a) 若第一点在窗口边界外、第二点在窗口边界内,将交点I与窗口内的点P输入顶点表.
(b) 若两顶点都在窗口边界内,只将第二点输入顶点表,如P。
(c) 若第一点在窗口边界内、第二点在窗口边界外,将交点I输入顶点表。
(d) 若两点均在窗口边界外,不输入任何点。
2.Weiler-Atherton多边形裁剪:
直线裁剪
1.中点分割算法
当对直线段不能简取也不能简弃时,简单地把线段等分为二段,对两段重复上述测试处理,直至每条线段完全在窗口内或完全在窗口外。
中点分割算法的核心思想是通过二分逼近来确定直线段与窗口的交点。
2.梁友栋-Barsky算法
设要裁剪的线段是P0P1。P0P1和窗口边界交于A,B,C,D四点,见图。
算法的基本思想是从A,B和P0三点中找出最靠近的P1点,图中要找的点是P0。从C,D和P1中找出最靠近P0的点。图中要找的点是C点。那么P0C就是P0P1线段上的可见部分。