Bài Giải
/*
Name: Ve da giac tu cac dinh cho truoc trong thu vien Graphics
Copyright: None
Author: Tran Anh
Description: http://www.code.tavn.net
*/
#include <stdio.h>
#include <graphics.h>
#include <conio.h>
#include <math.h>
void DDA(int xA,int yA,int xB,int yB,int color){
int dx=xB-xA;
int dy=yB-yA;
int step;
if(abs(dx)>abs(dy))
step=abs(dx);
else
step=abs(dy);
float x_inc=(float)dx/step;
float y_inc=(float)dy/step;
float x=xA;
float y=yA;
putpixel(x,y,color);
for(int k=1;k<=step;k++){
x=x+x_inc;
y=y+y_inc;
putpixel(round(x),round(y),color);
}
}
typedef struct Dinh{
int x,y;
};
void VeDaGiac(Dinh d[],int n, int color){
for(int i=0;i<n;i++){
int j = (i+1)%n;
DDA(d[i].x,d[i].y,d[j].x,d[j].y,color);
}
}
int Delta3(Dinh a,Dinh b, Dinh c){
int kq=a.x*b.y+a.y*c.x+b.x*c.y-c.x*b.y-b.x*a.y-c.y*a.x;
if(kq<0) return -1;
if(kq>0) return 1;
return 0;
}
void XetLoiLom(Dinh d[],int n){
Dinh a=d[0],b=d[1],c=d[2];
int cua=Delta3(a,b,c);
for(int i=1;i<n;i++){
int j = (i+1)%n;
int k = (i+2)%n;
if(cua!= Delta3(d[i],d[j],d[k])){
return;
}
}
}
int main(){
initwindow(640,480);
Dinh d[4]={{100,100},{400,300},{200,300},{300,100}};
VeDaGiac(d,4,15);
XetLoiLom(d,4);
getch();
return 0;
}
Name: Ve da giac tu cac dinh cho truoc trong thu vien Graphics
Copyright: None
Author: Tran Anh
Description: http://www.code.tavn.net
*/
#include <stdio.h>
#include <graphics.h>
#include <conio.h>
#include <math.h>
void DDA(int xA,int yA,int xB,int yB,int color){
int dx=xB-xA;
int dy=yB-yA;
int step;
if(abs(dx)>abs(dy))
step=abs(dx);
else
step=abs(dy);
float x_inc=(float)dx/step;
float y_inc=(float)dy/step;
float x=xA;
float y=yA;
putpixel(x,y,color);
for(int k=1;k<=step;k++){
x=x+x_inc;
y=y+y_inc;
putpixel(round(x),round(y),color);
}
}
typedef struct Dinh{
int x,y;
};
void VeDaGiac(Dinh d[],int n, int color){
for(int i=0;i<n;i++){
int j = (i+1)%n;
DDA(d[i].x,d[i].y,d[j].x,d[j].y,color);
}
}
int Delta3(Dinh a,Dinh b, Dinh c){
int kq=a.x*b.y+a.y*c.x+b.x*c.y-c.x*b.y-b.x*a.y-c.y*a.x;
if(kq<0) return -1;
if(kq>0) return 1;
return 0;
}
void XetLoiLom(Dinh d[],int n){
Dinh a=d[0],b=d[1],c=d[2];
int cua=Delta3(a,b,c);
for(int i=1;i<n;i++){
int j = (i+1)%n;
int k = (i+2)%n;
if(cua!= Delta3(d[i],d[j],d[k])){
return;
}
}
}
int main(){
initwindow(640,480);
Dinh d[4]={{100,100},{400,300},{200,300},{300,100}};
VeDaGiac(d,4,15);
XetLoiLom(d,4);
getch();
return 0;
}
0 comments:
Post a Comment