- 7
- 0
- 约3.67千字
- 约 82页
- 2022-07-04 发布于北京
- 举报
裁剪;裁剪算法;1.点裁剪;2.线段裁剪;图示;(1)cohen-sutherland编码算法;线段的裁剪cohen-sutherland算法;编码的含义;;;线段的编码;算法;图示的线段;交点的计算;结论;如何求交点;算法流程;算法实现;编码;编码;编码;(2)梁友栋-Barsky直线裁剪算法;一维裁剪;梁友栋-Barsky裁剪算法;其中Δx,Δy把窗口边界的四条边分成两类,一类称为
始边,另一类称为终边。
当Δx≥0(Δy≥0)时,称x=xwmin(y=ywmin)为始边,
x=xwmax(y=ywmax)为终边。
当Δx0(Δy0)时,称x=xwmin (y=ywmin)为终边,
x=xwmax (y=ywmax)为始边。
求出P0P1和两条始边的交点的参数u0’和u0’’,令
u0 = max(u0’,u0’’,0)则u0就是图中A、B和P0三点中
最靠近P1的点的参数。求出P0P1和两条终边的交点的参数
u1’,u1’’ ,令u1 = min(u1’,u1’’,1)则u1就是图中C、D和P1三点中最靠近P0的点的参数。当u1u0时,方程中参数u∈[u0, u1]的线段就是P0P1的可见部分。当u0u1时,
整个直线段为不可见。
;分析;;分析;分析;;与前一种Cohen-Sutherland算法一样首先对线段端点进行编码,并把线段与窗口的关系分为三种情况:全在、完全不在、线段和窗口有交。
对前两种情况,进行一样的处理。
对于第三种情况,用中点分割的方法求出线段与窗口的交点。
;在计算交点的时候采用中点分割法,分别求出离两个端点最近的可见点。;1)如果P1可见,则自身就是离P1最近的可见点,结束;
2)如果P1P2显然完全不可见,那么不存在离P1最近的点,结束;
3)求线段P1P2的中点Pm,如果P1Pm的长度小于指定的数,那么Pm就是离P1最近的可见点,结束;
4)如果P1Pm完全不可见,那么就需要求线段PmP2上离P2最近的可见点,即用Pm代替P1,重新回到步骤2;否则,就需要求P1Pm上离P1最近的可见点,即用Pm代替P2,重新回到步骤2。
一般而言,指定的数取值为一个象素的宽度。;P1可见?;(4)Cyrus-Beck算法;点积;;交点;;(5)利用斜率对直线裁剪;;;Else { //斜率为负或者零的情况
if y1yb or y2 yt then stop;
if x1 =x2 then goto 2 ;
m = (y2+y1)/(x2-x1);
if x1 xl then { y1 = m *(xl +x1) + y1;
x1 = xl;
if y1 yb then stop;
}
if x2 xr then { y2 = m *(xr-x1) + y1;
x2 = xr;
if y2 yt then stop;};If y1 = y2 then goto 3
2: if y2 yb then
{ x2 = (yb-y1)/m + x1;
y2 = yb;}
if y1 yt then
{ x1 = (yt + y1)/m +x1
y1 = yt;
}}
3: line (x1,y1)(x2,y2)
Stop;;2、多边形的裁剪;;Sutherland-Hodgman 算法;c;多边形各顶点的处理规则分析如下:;分析;逐次裁剪多边形的流程;;;算法程序;clip_single_edge(edge, type, nin, xin, yin, nout, xout, yout)
int edge, type, nin, *xin, *yin, *nout, *xout, *yout;
{ int i, k, yes, is_in;
int x, y, x_intersect, y_intersect;
x=xin[nin]; y=yin[nin];
k=0;
for(i=0
您可能关注的文档
最近下载
- 新高考数学一轮复习第4章 第04讲 简单的三角恒等变换 (精讲+精练)(教师版).doc VIP
- 《大学生商业基础教程)》 教案大纲.pdf VIP
- 2025GTYQ-ESD200工业及商业用途点型可燃气体探测器.docx VIP
- 《场地设计》2014年历年真题.pdf VIP
- 高考英语语法填空历年真题和答案详解权威整理.doc VIP
- 产业经济学 课后复习思考习题答案(刘志彪) 及 期末试题库大全.docx
- 刮痧PPT课件制作.pptx VIP
- 美国AB变频器说明书 22F Power Flex 4m.pdf VIP
- 为人处世(新员工培训).docx VIP
- 2026年数据分析和人工智能规划指南-Gartner.pptx VIP
原创力文档

文档评论(0)