PDA

View Full Version : رسم خط در ++c



rezaricky
سه شنبه 25 خرداد 1389, 21:10 عصر
سلام دوستان
من برای برنامه ام توی turbo c نیاز به رسم خطوط افقی وعمودی دارم لطفا اگه کسی میتونه کمکم کنه:لبخندساده:

Web.Designer01
چهارشنبه 26 خرداد 1389, 10:54 صبح
سلام دوستان
من برای برنامه ام توی turbo c نیاز به رسم خطوط افقی وعمودی دارم لطفا اگه کسی میتونه کمکم کنه:لبخندساده:
برای رسم خط میتونید از الگورریتمهای dda و برسنهام استفاده کنید:
الگوریتم DDA:


#include<graphics.h>
#include<stdio.h>
#include<conio.h>
#include<math.h>
void main()
{
int driver = DETECT,mode;
initgraph(&driver,&mode,"c:\\tc\\bgi");
clrscr();
int xa,ya,xb,yb,step,i;
scanf("%d%d",&xa,&ya);
scanf("%d%d",&xb,&yb);
float xinc,yinc,x=xa,y=ya;
int dx=xb-xa,dy=yb-ya;
if(abs(dx) > abs(dy))
step=abs(dx);
else
step=abs(dy);
xinc=dy/(float)step;
yinc=dx/(float)step;
clrscr();
putpixel(x,y,RED);
for(i=0;i<step;i++)
{
x+=xinc;
y+=yinc;
putpixel(x,y,RED);
}
getch();
}


الگوریتم برسنهام:


#include<conio.h>
#include<iostream.h>
#include<stdio.h>
#include<graphics.h>
#include<math.h>
void bres_Line(int x1,int y1,int x2,int y2);
void main(void)
{
int xa,ya,xb,yb;
int driver = DETECT,mode;
initgraph(&driver,&mode,"c:\\tc\\bgi");
printf("Enter X1:");
scanf("%d",&xa);
printf("\nEnter Y1:");
scanf("%d",&ya);
printf("\nEnter X2:");
scanf("%d",&xb);
printf("\nEnter Y2:");
scanf("%d",&yb);
cleardevice();
bres_Line(xa,ya,xb,yb);
getch();
closegraph();
}
void bres_Line(int x1,int y1,int x2,int y2)
{
int dx,dy,stepx,stepy,p;
dx=x2-x1;
dy=y2-y1;
if (dy<0)
{
stepy=-1;
dy=-dy;
}
else stepy=1;
if(dx<0)
{
dx=-dx;
stepx=-1;
}
else stepx=1;
dy*=2;
dx*=2;
if(dx<0 || dy<0)
{
int k=y2;y2=y1;y1=k;
int t=x2;x2=x1;x1=t;
}
putpixel(x1,y1,15);
if(dx>dy)
{
p=2*dy-dx;
while(x1!=x2)
{
if(p>0)
{
y1+=stepy; p-=dx;
}
x1+=stepx; p-=2*dy;
putpixel(x1,y1,15);
}
}
else
p=2*dx-dy;
while(y1!=y2)
{
if(p>=0)
{
x1+=stepx;
p-=dy;
}
y1+=stepy;
p+=dx;
putpixel(x1,y1,15);
}
}

rezaricky
چهارشنبه 26 خرداد 1389, 12:01 عصر
خیلی ممنون دوست عزیز ولی من وقتی از توابع graphics.h استفاده میکنم و میخوام برنامه ام رو اجرا کنم کلا از turbo c خارج میشه

saber187518
شنبه 29 خرداد 1389, 00:37 صبح
باسلام
فکر کنم اگه قبل از closegraph دستور getch رو قرار بدی کارت راه بیافته و از محیط خارج نشه.
یه امتحان کن ببین چی میشه.

hamid1395
شنبه 29 خرداد 1389, 02:12 صبح
سلام
من از Turbo C++ V4.5 این خطا رو دارم
error BGI graphics not supported under Windows

از Turbo C V3.0 هم که استفاده می کنم این خطا رو میده
unable to open include file 'stdio.h'
unable to open include file 'graphics.h'
unable to open include file 'conio.h'
unable to open include file 'include<math.h> g
این g رو گذاشتم تا کد درست بشه

shask00l
شنبه 29 خرداد 1389, 07:37 صبح
مسیر پوشه فایل های header توی turbo c تنظیم نیست . بری تنظیم مسیر توی محیط turbo C منوی options و گزینه ی directories رو انتخاب کن . پیشنهاد میکنم برای تنظیم راحت تر مسیر ها پوشه ی tc رو توی فهرست ریشه ی درایو کپی کنی . موفق باشید:لبخندساده:

hamid1395
شنبه 29 خرداد 1389, 15:05 عصر
آدرس رو هم تغییر دادم
نشد، همون پیغام رو میده

saber187518
یک شنبه 30 خرداد 1389, 18:06 عصر
با سلام
دوست عزیز برای کار با گرافیک شما باید با turbo c++ 3 کد بنویسی
متاسفانه با بقیه ورژنها خطا میده
حالا چرا؟
نمیدونم.
من خیلی تلاش کردم که بتونم با 5.02 گرافیکی بنویسم ولی نشد که نشد.
به شما هم توصیه میکنم وقتت رو تلف نکنی.
البته احتمالا من نتونستم. ولی در هر صورت تا قبل از اینکه یاد بگیری فعلا با ورژن 3 بنویس بعد برو سراغ 4.5
موفق باشی

ayat.gholizadeh
یک شنبه 30 خرداد 1389, 18:49 عصر
سلام. ميشه بگيد تو ويژوال استديو چطور ميشه خط رسم كرد؟