ZKX's LAB

C++画圆(计算机图形学) vs计算机图形学画线函数

2020-07-19知识58

计算机图形学算法处理线段,急 修改了一下,主要是移动了一下位置。你的代码好老啊,比C99老多了,比C89还老。我简单的改了下,不知道是不是你的要求。也没TC,无法运行验证。includeincludedefine LEFT 1define RIGHT 2define BOTTOM 4define TOP 8define XL 100define XR 400define YB 100define YT 400去掉的代码float XL,YB,XR,YT;添加的代码/从main函数中移动过来void encode(float x,float y,int*code){int c=0;if(x)c=c|LEFT;else if(x>;XR)c=c|RIGHT;if(y)c=c|BOTTOM;else if(y>;YT)c=c|TOP;code=c;return;}(x1,y1)与(x2,y2)是线段端点坐标,其它四个参数分别定义窗口的左,下,右,上边界*/void C_S_LineCLip(float x1,float y1,float x2,float y2){int code1,code2,code;float x,y;encode(x1,y1,&code1);encode(x2,y2,&code2);while((code1。0)|(code2。0)){if((code1&code2)。0)return;code=code1;if(code1=0)code=code2;if((LEFT&code)。0)/*线段与左边界相交*/{x=XL;y=y1+(y2-y1)*(XL-x1)/(x2-x1);}else if((RIGHT&code)。0)/*线段与右边界相交*/{x=XR;y=y1+(y2-y1)*(XR-x1)/(x2-x1);}else if((BOTTOM&code)。0)/*线段与下边界相交*/{y=YB;x=x1+(x2-x1)*(YB-y1)。MATLAB如何画等高线图,等高线图在实际应用中经常被用到,MATLAB提供了三维等高线绘图指令和平面的线的绘图指令,可以根据实际画出想要的等高线图。C++画圆(计算机图形学) #includeinclude<;graphics.h>;/*预定义库函数*/void circlePoint(int x,int y)/*八分法画圆程序*/{circle(320 x*20,240 y*20,3);circle(320 y*20,240 x*20,3);circle(320-y*20,240 x*20,3);circle(320-x*20,240 y*20,3);circle(320-x*20,240 y*20,3);circle(320-x*20,240-y*20,3);circle(320-y*20,240-x*20,3);circle(320 y*20,240-x*20,3);circle(320 x*20,240-y*20,3);}void MidBresenhamcircle(int r)/*中点Bresenham算法画圆的程序*/{int x,y,d;x=0;y=r;d=1-r;计算初始值*/while(x){ circlePoint(x,y);绘制点(x,y)及其在八分圆中的另外7个对称点*/if(d)d=2*x 3;根据误差项d的判断,决定非最大位移方向上是走还是不走*/else{ d=2*(x-y)5;y-;}x;delay(900000);}/*while*/}main(){int i,j,r,graphmode,graphdriver;detectgraph(&graphdriver,&graphmode);initgraph(&graphdriver,&graphmode,\"\");printf(\"中点Bresenhamcircle算法画圆的程序\\n\");提示信息*/printf(\"注意|r|);printf(\"\\n输入半径值 r:\");scanf(\"%d\",&r);printf(\"按任意键显示图形.\");getch();cleardevice();setbkcolor(BLACK);for(i=20;i;i=20)/*使用双循环画点函数画出表格中的纵坐标。计算机图形学题目:完成一个点在一个正弦曲线上运动的动画程序 不知道你用什么语言。我的思路是这样的:作坐标系,在坐标系上添加圆的控件(缩小些就成了点.要不实际的点是一个像素的,看不清啊)。用程序的时钟功能(VB里面是timer),动态设置圆的坐标(x,sina(x))。注意:1.软件工作区域的左上角是它的坐标圆点,你自己作的坐标系要通过坐标变换获得真实的坐标(高中学过的);2.设置x的范围。当超过最大值,重新开始。3.时钟间隔设置,每次x递进的量,两者之间协调好,这样点移动的时候会自然写,人的视觉延迟大概0.1s,注意这个,产生连续效果。MATLAB学习与使用:如何绘制三维心形图,MATLAB是MATrixamLABoratory(矩阵实验室)的缩写,是一款强大的科学软件,具有编程、绘图、仿真等功能。利用MATLAB绘制一款三维的。

#对称轴#等高线#matlab#计算机图形学

随机阅读

qrcode
访问手机版