cc实现控制台下字符画直线和画圆课件
c/c++ 实现
DDA画法DDA算法原理:
ε=1/max(|△x|,|△y|)
中点BH画圆法
八分法
首先解决八分之一圆弧
算法步骤:
1.输入圆的半径R。
2.计算初始值d=1.25-R、x=0、y=R。
3.绘制点(x,y)及其在八分圆中的另外七个对称点。
4.判断d的符号。若d≤0,则先将d更新为d+2x+3,再将(x,y)更新为(x+1,y);否则先将d更新为d+2(x-y)+5,再将(x,y)更新为(x+1,y-1)。
5.当xy时,重复步骤3和4。否则结束。
改进:用d-0.25代替d
算法步骤:
1.输入圆的半径R。
2.计算初始值d=1-R、x=0、y=R。
3.绘制点(x,y)及其在八分圆中的另外七个对称点。
4.判断d的符号。若d≤0,则先将d更新为d+2x+3,再将(x,y)更新为(x+1,y);否则先将d更新为d+2(x-y)+5,再将(x,y)更新为(x+1,y-1)。
5.当xy时,重复步骤3和4。否则结束。
源代码:
DDA画直线:
#includeiostream
#includecmath
using namespace std;
int arr[100][100];
void drawLine(int x0, int y0, int x1, int y1)
{
int ymax = y1;
int ymin = y0;
if (y0
原创力文档

文档评论(0)