ZKX's LAB

求计算机图形学中点Bresenham算法画直线的代码?? 计算机图形学中点画线算法例题

2020-07-21知识14

图形学中的中点画线法与Bresenham算法画线的区别 个人认为最关键的区别就是那个决策参数的计算方式。在Bresenham算法中,假设我们在(x0,y0)处画了一个点,那我们就要决定下一个点是在(x0+1,y0)还是在(x0+1,y0+1)处画,这两个点一般都不在直线上,我们要计算这两个.用C++如何实现bresenham画线算法?计算机图形学上面有个drawpixel的函数。不知道怎么用。 在MFC中可以这样实现:Bresenham算法画直线void CMyView:OnDrawLineByBresenham(){TODO:Add your command handler code hereCDC*pDC=GetDC();CPoint PtBegin(80,130);起始点CPoint PtEnd(320,370);终止点int s1,s2,interchange;double X=PtBegin.x;double Y=PtBegin.y;double deltax,deltay,f,Temp;deltax=abs(PtEnd.x-PtBegin.x);deltay=abs(PtEnd.y-PtBegin.y);if(PtBegin.x-PtBegin.x>;=0)s1=1;else s1=-1;if(PtEnd.y-PtBegin.y>;=0)s2=1;else s2=-1;f=2*deltay-deltax;if(deltay>;deltax){Temp=deltax;deltax=deltay;deltay=Temp;interchange=1;}else interchange=0;for(int i=1;i(deltax+deltay);i+){if(f>;=0){if(interchange=1)X+s1;else Y+s2;pDC->;SetPixel(int(X),int(Y),RGB(0,50,250));f=f-2*deltax;}else{if(interchange=1)Y+s2;else X+s1;pDC->;SetPixel(int(X),int(Y),RGB(200,0,0));f=f+2*deltay;}}}编译环境:VC6.0计算机图形学中点画线法题目一道求解答 b反了.求计算机图形学的中点画抛物线详细算法,已经每一步实现的功能,最好能说一下思想。谢谢! 抛物线是指平面内到一个定点F(焦点)和一条定直线l(准线)距离相等的点的轨迹。它有许多表示方法,例如参数表示,标准方程表示等等。它在几何光学和力学中有重要的用处。抛物线也是圆锥曲线的一种,即圆锥面与平行于某条母线的平面相截而得的曲线。二次函数的图像就是一条抛物线,它是一个轴对称图形。抛物线与对称轴的交点叫做抛物线的顶点。抛物线即把物体抛掷出去,落在远处地面,这物体在空中经过的曲线。平面内,到定点与定直线的距离相等的点的轨迹叫做抛物线。其中定点叫抛物线的焦点,定直线叫抛物线的准线。当抛物线的顶点为原点时,抛物线有以下特征:①原点在抛物线上;②对称轴为坐标轴;③准线与对称轴垂直,垂足与焦点分别对称于原点,它们与原点的距离都等于一次项系数的绝对值的1/4。对称轴为x轴时,方程右端为±2px,方程的左端为y^2;对称轴为y轴时,方程的右端为±2py,方程的左端为x^2;开口方向与x轴(或y轴)的正半轴相同时,焦点在x轴(y轴)的正半轴上,方程的右端取正号;开口方向与x(或y轴)的负半轴相同时,焦点在x轴(或y轴)的负半轴上,方程的右端取负号。抛物线的弦是连接抛物线上任意两点的线段。抛物线的焦弦是经过抛物线焦点。

#bresenham算法#抛物线

随机阅读

qrcode
访问手机版