PDA

View Full Version : سوال: ترسیم خط با استفاده از الگوریتم DDA



Marjan_Bala
دوشنبه 29 مهر 1387, 11:36 صبح
با سلام
دوستان من میخوام برنامه ای بنویسم که مختصات دو تا نقطه رو از کاربر بگیره یعد با استفاده از اکگوریتم DDA این دو تا نقطه رو به هم وصل منه .
من این برنامه رو اینجوری نوشتم:


#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
#include<graphics.h>
#include<dos.h>
void main()
{
int i,gd,gm;
int graphDriver = DETECT,graphMode;
float roundx,roundy,xi,yi,dx,dy,x1,x2,y1,y2,x,y,l;
//clrscr();
initgraph(&graphDriver,&graphMode,"c\\tc\\bgi");
printf("\n Enter X1:");
scanf("%f",&x1);
printf("\n Enter Y1:");
scanf("%f",&y1);
printf("\n Enter X2:");
scanf("%f",&x2);
printf("\n Enter Y2:");
scanf("%f",&y2);
dx=x2-x1;
dy=y2-y1;

if(abs(dx)>abs(dy))
l=abs(dx);
else
l=abs(dy);
xi=dx/l;
yi=dy/l;

x=x1;
y=y1;
roundx=(int)(x+0.5);
roundy=(int)(y+0.5);
putpixel(roundx,roundy,1);
for(i=1;i<=l;i++)
{
x=x+xi;
y=y+yi;
roundx=(int)(x+0.5);
roundy=(int)(y+0.5);
putpixel(roundx,roundy,1);
}
getch();
restorecrtmode();
}


ولی وقتی که اجراش میکنم هنگامیکه به دستور Putpixel میرسه خطای زیرو میده و از برنامه خارج میشه:
BGI ERROR:Graphics not initialized(use '' ))
به نظر شما ایراد از چی میتونه باشه؟
(اگه ممکنه خیلی فوری راهنمایی کنید که کارم گیره)

Marjan_Bala
دوشنبه 29 مهر 1387, 16:08 عصر
دوستان تا حالا کسی به چنین مشکلی بر نخورده؟

Nima_NF
دوشنبه 29 مهر 1387, 16:21 عصر
قسمتی که initgraph را فراخوانی کرده اید نوشته اید c\\tc\\bgi که دو نقطه را فراموش کرده اید، پس بنویسید: (ابتدا بررسی کنید که در این فولدر، کتابخانه های BGI وجود داشته باشد)



c:\\tc\\bgi