生成方法
用了中点画线法完成实验,中点画线法利用了直线的一般式方程:F(x,y) = 0 ;Ax + By + C = 0; 这条直线将平面区域的点分为三个部分,直线上方、直线下方、在直线上。
遇到的问题
写的过程中发现《计算机图形学》书上用的setpixel()函数和initpraph()函数无法使用,查了之后才知道这几个函数是Turbo C编译器的。之后查到在EasyX的官网,可以下载 <graphics.h>的头文件。之后发现getch()函数也运行不了,之后查到需要包含<conio.h>的头文件.
源代码
#include<iostream>
#include<windows.h>
#include<graphics.h>
#include<conio.h>
using namespace std;
void MidPLine(int x1, int y1, int x2, int y2){
int x, y, d0, d1, d2, a, b;
y = y1;
a = y1 - y2;
b = x2 - x1;
d0 = 2 * a + b;
d1 = 2 * a;
d2 = 2 * (a + b);
for (x = x1; x <= x2; x++){
putpixel(x, y, 255);
if (d0 < 0){
y++;
d0 += d2;
}
else{
d0 += d1;
}
}
}
int main(){
initgraph(680, 480);
MidPLine(000, 000, 400, 300);
_getch();
closegraph();
system("pause");
return 0;
}