现代设计方法3.pptVIP

  • 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)

1亿VIP精品文档

相关文档