Archive

Archive for December, 2009

C++ Graphics – 02 – Line program by Incremental Algorithm

December 2, 2009 Leave a comment

Create a Line program by Incremental Algorithm.

#include <stdio.h>
#include <conio.h>
#include <graphics.h>
#include <math.h>

void lineIncremental(int x1, int y1, int x2, int y2){
	int x;
	float dy = y2-y1;
	float dx = x2-x1;
	float m = dy/dx;
	float y = y1;
	if ((m > -1) || (m < 1) ){
		for(x=x1; x<=x2;x++){
			putpixel(x, floor(0.5+y), WHITE);
			y+=m;
			}
		}
	else{
		for(x=y1; x<=y2;x++){
			putpixel(x, floor(0.5+y), WHITE);
			x+=1/m;
			}
		}
	}

void main(){
	int gd=DETECT, gm;
	initgraph(&gd, &gm, "\\tc");
	lineIncremental(100, 10, 300, 400);
	lineIncremental(100, 400, 300, 10);
	getch();
	}

C++ Graphics – 01 – Line program by Using Mid-Point Algorithm

December 1, 2009 Leave a comment

Create a Line program by Using Mid-Point Algorithm.

#include <stdio.h>
#include <conio.h>
#include <graphics.h>
#include <math.h>
#include <dos.h>

void lineMidPoint(int x1, int y1, int x2, int y2){
	int dx = x2 - x1;
	int dy = y2 - y1;
	int d = 2 * dy - dx;
	int incrE = 2 * dy;
	int incrNE = 2 * (dy - dx);
	int x = x1;
	int y = y1;
	putpixel(x, y, WHITE);
	while(x < x2){
		if(d<=0){
			d += incrE;
			x++;
			}
		else{
			d += incrNE;
			x++;
			y++;
			}
		putpixel(x, y, WHITE);
		}
	}

int main(){
	int gd=DETECT, gm;
	initgraph(&gd, &gm, "\\tc");
	lineMidPoint(100, 100, 600, 300);
	getch();
	return 0;
	}