ثلاثة من اهم خوارزميات في رسوم الحاسوب direct and DDA and Bresenhames باستخدام turbo c 3.0 computer graphics
Direct algorithm
#include<iostream.h>
#include<graphics.h>
#include<stdio.h>
#include<conio.h>
void main(){
int x1,y1,x2,y2,x,y;
float a,b;
int gdriver=DETECT,gmode,errorcode;
initgraph(&gdriver,&gmode," ");
printf(" please enter x1,y1");
scanf("%d%d",&x1,&y1);
printf(" please enter x2,y2");
scanf("%d%d",&x2,&y2);
a=((float)(y2-y1))/((float)(x2-x1));
b=y1-(a*x1);
for(x=x1;x<=x2;x++)
{y=(int)(a*x+b+0.5);
putpixel(x,y,15);}
getch();
closegraph();
}
★★★★★★★★★★★★★★
DDAalgorithm
#include <graphics.h>
#include <stdio.h>
#include <math.h>
int main( )
{
float x,y,x1,y1,x2,y2,dx,dy,pixel;
int i,gd,gm;
{
float x,y,x1,y1,x2,y2,dx,dy,pixel;
int i,gd,gm;
printf("Enter the value of x1 : ");
scanf("%f",&x1);
printf("Enter the value of y1 : ");
scanf("%f",&y1);
printf("Enter the value of x2 : ");
scanf("%f",&x2);
printf("Enter the value of y1 : ");
scanf("%f",&y2);
scanf("%f",&x1);
printf("Enter the value of y1 : ");
scanf("%f",&y1);
printf("Enter the value of x2 : ");
scanf("%f",&x2);
printf("Enter the value of y1 : ");
scanf("%f",&y2);
detectgraph(&gd,&gm);
initgraph(&gd,&gm,"");
initgraph(&gd,&gm,"");
dx=abs(x2-x1);
dy=abs(y2-y1);
dy=abs(y2-y1);
if(dx>=dy)
pixel=dx;
else
pixel=dy;
pixel=dx;
else
pixel=dy;
dx=dx/pixel;
dy=dy/pixel;
dy=dy/pixel;
x=x1;
y=y1;
y=y1;
i=1;
while(i<=pixel)
{
putpixel(x,y,1);
x=x+dx;
y=y+dy;
i=i+1;
delay(100);
}
getch();
closegraph();
}
while(i<=pixel)
{
putpixel(x,y,1);
x=x+dx;
y=y+dy;
i=i+1;
delay(100);
}
getch();
closegraph();
}
★★★★★★★★★★★★★★
Bresenhames algorithm
# include <stdio.h>
# include <conio.h>
# include <graphics.h>
void main()
{
int dx,dy,x,y,p,x1,y1,x2,y2;
int gd,gm;
clrscr();
printf("\n\n\tEnter the co-ordinates of first point : ");
scanf("%d %d",&x1,&y1);
printf("\n\n\tEnter the co-ordinates of second point : ");
scanf("%d %d",&x2,&y2);
dx = (x2 - x1);
dy = (y2 - y1);
p = 2 * (dy) - (dx);
x = x1;
y = y1;
detectgraph(&gd,&gm);
initgraph(&gd,&gm,"e:\\tc\\bgi");
putpixel(x,y,WHITE);
while(x <= x2)
{
if(p < 0)
{
x=x+1;
y=y;
p = p + 2 * (dy);
}
else
{
x=x+1;
y=y+1;
p = p + 2 * (dy - dx);
}
putpixel(x,y,WHITE);
}
getch();
closegraph();
}
★★★★★★★★★★★★★★
by HamedDiyala
Bresenhames algorithm
# include <stdio.h>
# include <conio.h>
# include <graphics.h>
void main()
{
int dx,dy,x,y,p,x1,y1,x2,y2;
int gd,gm;
clrscr();
printf("\n\n\tEnter the co-ordinates of first point : ");
scanf("%d %d",&x1,&y1);
printf("\n\n\tEnter the co-ordinates of second point : ");
scanf("%d %d",&x2,&y2);
dx = (x2 - x1);
dy = (y2 - y1);
p = 2 * (dy) - (dx);
x = x1;
y = y1;
detectgraph(&gd,&gm);
initgraph(&gd,&gm,"e:\\tc\\bgi");
putpixel(x,y,WHITE);
while(x <= x2)
{
if(p < 0)
{
x=x+1;
y=y;
p = p + 2 * (dy);
}
else
{
x=x+1;
y=y+1;
p = p + 2 * (dy - dx);
}
putpixel(x,y,WHITE);
}
getch();
closegraph();
}
★★★★★★★★★★★★★★
by HamedDiyala
ثلاثة من اهم خوارزميات في رسوم الحاسوب direct and DDA and Bresenhames باستخدام turbo c 3.0 computer graphics
Reviewed by حامد طالب العراقي
on
5/18/2015 07:57:00 م
Rating:
ليست هناك تعليقات: