计算机图形学实验——直线扫描算法C/C++实现(VC和TC环境)

生成方法

用了中点画线法完成实验,中点画线法利用了直线的一般式方程: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;
}

猜你喜欢

转载自blog.csdn.net/qq_42685588/article/details/93241206
今日推荐