计算机图形学基础教程课件之习题课1(第二版)(孙家广 胡事民编著)
- 格式:ppt
- 大小:190.00 KB
- 文档页数:24
1.列举计算机图形学的主要研究内容。
计算机中图形的表示方法、图形的计算、图形的处理和图形的显示。
图形硬件、图形标准、图形交互技术、光栅图形生成算法、曲线曲面造型、实体造型、真实感图形计算与显示算法,以及科学计算可视化、计算机动画、自然景物仿真、虚拟现实等。
2.常用的图形输出设备是什么?显示器(CRT、LCD、等离子)、打印机、绘图仪等。
2.常用的图形输入设备是什么?键盘、鼠标、跟踪球、空间球、数据手套、光笔、触摸屏、扫描仪等。
3.列出3种图形软件工具。
AutoCAD、SolidWorks、UG、ProEngineer、CorelDraw、Photoshop、PaintShop、Visio、3DMAX、MAYA、Alias、Softimage等。
错误:CAD4.写出|k|>1的直线Bresenham画线算法。
dddd设直线方程为:y=kx+b,即x=(y-b)/k,有x i+1=x i+(y i+1-y i)/k=x i+1/k,其中k=dy/dx。
因为直线的起始点在象素中心,所以误差项d的初值d0=0。
y下标每增加1,d的值相应递增1/k,即d=d+1/k。
一旦d≥1,就把它减去1,这样保证d 在0、1之间。
●当d≥0.5时,最接近于当前象素的右上方象素(x i+1,y i+1),x方向加1,d减去1;●而当d<0.5时,更接近于上方象素(x i,y i+1)。
为方便计算,令e=d-0.5,e的初值为-0.5,增量为1/k。
●当e≥0时,取当前象素(x i,y i)的右上方象素(x i+1,y i+1),e减小1;●而当e<0时,更接近于上方象素(x i,y i+1)。
void Bresenhamline (int x0,int y0,int x1, int y1,int color){ int x, y, dx, dy;float k, e;dx = x1-x0, dy = y1-y0, k=dy/dx;e=-0.5, x=x0, y=y0;for (i=0; i≤dy; i++){ drawpixel (x, y, color);y=y+1,e=e+1/k;if (e≥0){ x++, e=e-1;}}}4.写出|k|>1的直线中点画线算法。
第一章:P561、列出在你过去学习工作中用过与计算机图形学有关的程序c语言:#include <graphics.h>main(){int graphdriver = VGA, graphmode=VGAHI;initgraph(&graphdriver,&graphmode,””);setbkcolor(BLUE);setcolor(WHITE);setfillstyle(1,LIGHTRED);bar3d(100,200,400,350,100,1);floodfill(450,300,WHITE);floodfill(250,450,WHITE);setcolor(LIGHTGREEN);rectangle(450,400,500,450);floodfill(470,420,LIGHTGREEN);getch();closegraph();}JA V A语言:例1、画点Import java.io.*;Class point{int ax;int ay;int bx;int by;public point(int ax, int ay, int bx, int by){float k ; //计算斜率float b;k=(by-ay)/(bx-ax);b=ay-ax*k;system.out.println(“直线的方程为:y=”+k+”x”+”+”+b);}}例2、画矩形class DrawPanel extends Jpanel{public void paint(Graphics g){super.paint(g);Graphics2D g2= (Graphics 2D);Double leftx=200;Double topy=200;Double width=300;Double height=250;Rectangle2D rect= new Rectangle2D.double(leftx,topy,width,height);G2.draw(rect);}}2、列出你所用过的窗口系统中与观感有关的元素的功能,如图标、滚动棒、菜单等使用滚动条当文档、网页或图片超出窗口大小时,会出现滚动条,可用于查看当前处于视图之外的信息。