PDA

View Full Version : سوال: توضیح برنامه



بنده حق
پنج شنبه 19 فروردین 1389, 17:45 عصر
سلام دوستان
من یه برنامه ترسیم خط (برسنهام)پیدا کردم که ازش سر در نمیارم. ممکن یکی ازشما بنده های خدا لطف کنه و من رو از این سر درگمی دربیاره و نحوه کار اون رو برام توضیح بده؟ :عصبانی++:
#include<stdlib.h>
#include<stdio.h>
#include<conio.h>
#include<graphics.h>
void main()
{
clrscr();
int x1,y1,x2,y2,dx,dy,inx,iny,e,gd=DETECT,gm;
initgraph(&gd,&gm,"");
printf("enter x1,y1,x2,y2:");
scanf("%d%d%d%d",&x1,&y1,&x2,&y2);
dx=x2-x1;
dy=y2-y1;
inx=dx>0 ? 1:-1;
iny=dy>0 ? 1:-1;
dx=abs(dx);
dy=abs(dy);
if(dx>=dy)
{
dy<<=1;
e=dy-dx;
dx<<=1;
while(x1!=x2)
{
putpixel(x1,y1,15);
if(e>=0)
{
y1+=iny;
e-=dx;
}
e+=dy;
x1+=inx;
}
}
else
{
dx<<=1;
e=dx-dy;
dy<<=1;
while(y1!=y2)
{
putpixel(x1,y1,15);
if(e>=0)
{
x1+=inx;
e-=dy;
}
e+=dx;
y1+=iny;
}
}
putpixel(x1,y1,15);
getch();
closegraph();
}

ebrahim1988
پنج شنبه 19 فروردین 1389, 20:36 عصر
همه جاش مشخصه
كجاش رو مشكل داريد؟

amin1softco
پنج شنبه 19 فروردین 1389, 22:45 عصر
نکته این کد اینه:


s=s<<1 == s<<=1 == s*=2 == s=s*2