Posts Tagged ‘CG’
Cartesian Slope-Intercept Equation
SOURCE CODE :
//programed by Paras Wadher
MCA
Nagpur university
/*program to draw a line using Cartesian Slope-Intercept Equation
[ Simple Implementation ].*/
# include <iostream.h>
# include <graphics.h>
# include <conio.h>
# include <math.h>
void show_screen( );
void slope_intercept_line(const int,const int,const int,const int);
int main( )
{
int driver=VGA;
int mode=VGAHI;
int x_1=0;
int y_1=0;
int x_2=0;
int y_2=0;
do
{
show_screen( );
gotoxy(8,10);
cout<<”Coordinates of Point-I (x1,y1) :”;
gotoxy(8,11);
cout<<”ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ”;
gotoxy(12,13);
cout<<”Enter the value of x1 = “;
cin>>x_1;
gotoxy(12,14);
cout<<”Enter the value of y1 = “;
cin>>y_1;
gotoxy(8,18);
cout<<”Coordinates of Point-II (x2,y2) :”;
gotoxy(8,19);
cout<<”ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ”;
gotoxy(12,21);
cout<<”Enter the value of x2 = “;
cin>>x_2;
gotoxy(12,22);
cout<<”Enter the value of y2 = “;
cin>>y_2;
initgraph(&driver,&mode,”..\\Bgi”);
setcolor(15);
slope_intercept_line(x_1,y_1,x_2,y_2);
setcolor(15);
outtextxy(110,460,”Press <Enter> to continue or any other key to exit.”);
int key=int(getch( ));
if(key!=13)
break;
}
while(1);
return 0;
}
void slope_intercept_line(const int x_1,const int y_1,const int x_2,const int y_2)
{
int color=getcolor( );
float x=x_1;
float y=y_1;
float dx=(x_2-x_1);
float dy=(y_2-y_1);
float m=(dy/dx);
float b=(y-(m*x));
float x_inc=((x_2>=x_1)?1:-1);
putpixel(x,y,color);
while((int)(x+0.5)!=x_2)
{
x+=x_inc;
y=((m*x)+b);
putpixel((int)(x+0.5),(int)(y+0.5),color);
}
}
void show_screen( )
{
restorecrtmode( );
textmode(C4350);
textbackground(1);
cprintf(” Cartesian Slope Intercept Equation “);
textbackground(8);
for(int count=0;count<42;count++)
gotoxy(1,46);
gotoxy(8,40);
cout<<”Note :”;
gotoxy(8,41);
cout<<”ÍÍÍÍÍÍ”;
gotoxy(10,43);
cout<<”This program is better for those lines with é<ñ45ø with x-axis.”;
gotoxy(1,2);
}
digital different Analizer(DDA)
SOURCE CODE :
//programed by Paras Wadher
MCA
Nagpur university
/*A Program to implement digital different Analizer(DDA)*/
#include<iostream.h>
#include<conio.h>
#include<dos.h>
#include<stdio.h>
#include<graphics.h>
#include<stdlib.h>
class LINE
{
public:void getdata();
void DrawLine();
void axis();
float x1,y1,x2,y2;
};
void LINE::getdata()
{
clrscr();
cout<<endl<<”Enter the coordinates of startimg point of line”;
cin>>x1>>y1;
cout<<endl<<”Enter rhe coordinates of ending point of line”;
cin>>x2>>y2;
//DrawLine();
clrscr();
}
void LINE::axis()
{
int gm,gd=DETECT;
int midx, midy,x,y;
char s[25];
initgraph(&gd, &gm, “”);
x = getmaxx();
y = getmaxy();
midx=x/2;
midy=y/2;
line(midx,0,midx,y);
outtextxy(x-50,midy-15,”X-axis”);
line(0,midy,x,midy);
settextstyle(0,0,0);
outtextxy(midx+15,10,”Y-axis”);
settextstyle(0,0,0);
for(int i=midy+1;i>-midy;i-=20)
{
line(midx-2,midy-i,midx+2,midy-i);
itoa(i,s,10);
outtextxy(midx-30,midy-i,s);
}
for(i=-midx-1;i<midx;i+=20)
{
itoa(i,s,10);
settextstyle(0,1,0);
outtextxy(i+midx,midy+3,s);
line(i+midx,midy-2,i+midx,midy+2);
}
getch();
closegraph();
}
void LINE::DrawLine()
{
int gd=DETECT,gm;
initgraph(&gd,&gm,” “);
float dx,dy,mx=1,my=1,t1,t2;
cout<<x1<<” “<<y1<<” “<<x2<<” “<<y2;
dx=x1-x2;
dy=y1-y2;
if(dx>dy)
{
mx=dx/dy;
t1=y1;
t2=y2;
}
else
{
my=dy/dx;
t1=x1;
t2=x2;
}
putpixel(x1,y1,15);
do
{
x1=x1+mx;
y1=y1+my;
putpixel(x1,y1,15 );
t1++;
}
while(t1<=t2);
getch();
closegraph();
}
void main()
{
LINE L;
L.getdata();
L.axis();
L.DrawLine();
}