- 5
- 0
- 约1.71千字
- 约 52页
- 2024-01-09 发布于广西
- 举报
《现代设计方法》;市场信息;2计算机辅助设计CAD;第三讲:;为了便于图形的变换计算,引用齐次坐标的概念:将一个n维矢量用n+1维矢量表示。;设点P〔x,y〕绕原点O逆时针旋转θ角,得到点P〔x,y〕。;计算机绘图根底;x;点P〔x,y〕沿x方向平移l,沿y方向平移m后得到点P〔x,y〕。;图形在x,y两个方向放大或缩小的比例分别为a和d,那么;图形在x,y两个方向同时放大或缩小的比例为e,那么;计算机绘图根底;计算机绘图根底;计算机绘图根底;计算机绘图根底;11
11
221;计算机绘图根底;计算机绘图根底;计算机绘图根底;计算机绘图根底;计算机绘图根底;用户域:是指程序员用来定义草图的整个自然空间〔
WD〕。
窗口区:把用户指定的任一区域〔W〕叫做窗口。窗
口区W小于或等于用户域WD,任何小于
WD的窗口区W都叫WD的一个子域。;说明:
①窗口区通常是矩形区域,可以用其左下角点和右上角点心坐标来表示。〔也可给定其左下角点坐标及矩形的长、宽来表示〕。
②窗口可以嵌套,即在第i层窗口中可以再定义第i+1层窗口。;2、屏幕域和视图区;计算机绘图根底;3、开窗变换;4、窗口—视图区变换;5、二维线段裁剪;〔1〕矢量裁剪法〔只讨论线段始点〕;待裁剪线段和窗口的关系:
(1)线段完全可见;
(2)线段完全不可见;
(3)线段局部可见。;计算机绘图根底;计算机绘图根底;A;〔2〕区域编码法;计算机绘图根底;分析:;分析:;分析:;分析:;if(LEFTcode!=0)
{x=XL;y=y1+(y2-y1)*(XL-x1)/(x2-x1);}
elseif(RIGHTcode!=0)
{x=XR;y=y1+(y2-y1)*(XR-x1)/(x2-x1);}
elseif(BOTTOMcode!=0)
{y=YB;x=x1+(x2-x1)*(YB-y1)/(y2-y1);}
elseif(TOPcode!=0)
{y=YT;x=x1+(x2-x1)*(YT-y1)/(y2-y1);};第一步判别线段两端点是否都落在窗口内,如果是,
那么线段完全可见;否那么进入第二步;
第二步判别线段是否为完全不可见,如果是,那么裁
剪结束;否那么进行第三步;
第三步求线段与窗口边延长线的交点,这个交点将
线段分为两段,其中一段完全不可见,丢弃。
对余下的另一段重新进行第一步,第二步判断,
直至结束。;介绍四种3维模型:线、面、体和特征建模;计算机绘图根底;计算机绘图根底;计算机绘图根底;计算机绘图根底;计算机绘图根底;附录:区域编码裁剪法程序;voidCS_LineClip(x1,y1,x2,y2,XL,XR,YB,YT)
floatx1,y1,x2,y2,XL,XR,YB,YT;
/*(x1,y1)(x2,y2)为线段的端点坐标,其他四个参数定义窗口的边界*/
{intcode1,code2,code;
code1=encode(x1,y1);
code2=encode(x2,y2);
while(code1!=0||code2!=0)
{if(code1code2!=0)return;//放弃
code=code1;
if(code1==0)code=code2;;附录:区域编码裁剪法程序;附录:区域编码裁剪法程序;作业
原创力文档

文档评论(0)