محیط گرافیکی را چطور روی c اجراکنیم ؟

alireza82

Well-Known Member
سلام
اقا من هرچي سعي كردم تو اين c يه برنامه گرافيكي بنويسم نشد .
كسي هست كه يه برنامه گرافيكي داشته باشه سورس اونو بده ببينم چه طوريه
يه عمر دعا تون مي كنم
 

بافی

Member
Re: گرافيك در c

alireza82 گفت:
سلام
اقا من هرچي سعي كردم تو اين c يه برنامه گرافيكي بنويسم نشد .
كسي هست كه يه برنامه گرافيكي داشته باشه سورس اونو بده ببينم چه طوريه
يه عمر دعا تون مي كنم
شما حالت گرافیکی رو صدا می زنید یا نه؟
یعنی graphics.h رو باید تو include حتما معرفی کنی!...
موفق باشید
 

Mikhak

Active Member
عليرضا جان خود help برنامه C پر از مثال
---------------
سينا
 

firoozeh

New Member
اقا كسي با c بازي فوتبال نوشته نداره؟؟؟


بخدا ثواب داره .... اگر ميتونيد كمك كنيد من يه ترم نيوفتم
 

hooshangi

New Member
گرافیک در C

ببخشید ، شما نمیدونین چرا وقتی توی توربو سی گرافیک کار میکنی ارور میده
BGI error : graphics not initialized (use 'initgraph')​
با این که من از init graph استفاده کردم بازم معلوم نیست حرف حسابش چیه !:neutral:
خواهشن جواب بدین
:cry:
 

Old User

Member
من همه زبونارو قاطی کردم :mrgreen: مگه نباید اینجوری باشه:

"include "graphics.h#

بعد باید conio.h هم صدا کنی ... :neutral:
 

hooshangi

New Member
من همه ی این کار ها رو انجام دادم :D
حتی مثال خود کتاب رو هم وارد کردم ، ولی کار نکرد :eek:
جالبه نه ؟
حالا سوال من اینه:
آیا توی توربو سی میشه گرافیک کار کرد یا نه ؟
 

Old User

Member
این مشکل شما یه دفعه برای من تو دانشگاه پیش اومده البته اونجا سیستما همه شبکه هستن نمیدونم این مشکل شما ربطی به این داره یا نه ... بروتو منوی Option ، فکر کنم سه تایا دوتا گزینه آخر باشه که یه سری مسیرو نشون میده ، اون مسیرها اگر درست تنظیم نشده باشه Include ها رو تشخیص نمیده اونارو باید بر اساس مسیری که نصب کردی برنامتو ، مشخص کنی یعنی بهش بفهمونی که از اینجا بای Include هارو باز کنی ... یه امتحانی بکن ببین چی میشه چون در حالت دیفالت باید همه چیزو بفهمه مگر اینکه یه جای کار خودت ایراد داشته باشه !
توربو سی هم گرافیک داره ...

موفق باشی
 

sheytoon

New Member
ببخشید ، شما نمیدونین چرا وقتی توی توربو سی گرافیک کار میکنی ارور میده
BGI error : graphics not initialized (use 'initgraph')​
با این که من از init graph استفاده کردم بازم معلوم نیست حرف حسابش چیه !:neutral:
خواهشن جواب بدین
:cry:



شما باید آدرس پوشه یbgi را درست وارد کنید مثلا initgraph(&draiver,&gmod,"d:\\tc\\bgi"); mهمین
 

saalek110

Well-Known Member
با سلام.
خوش آمدید.

اگر منظور در توربو سی 3 است به روش زیر عمل کنید. اگر مشکل داشتید بپرسید.
===============================================
نقل از:
http://forum.persiantools.com/showthread.php?t=35260
===============================================
براي شروع يك برنامه ساده گرافيكي مي گذاريم.

کد:
#include<graphics.h>
#include<conio.h>

void main()
{
char c ;
 menu:
 // ----------- shoroe ghaaleb -------------
int d=DETECT,m;
initgraph(&d,&m,"c:\\tc\\bgi");


circle(320,240,92);
line(10,10,300,300);
 // ----------- entehaye ghaaleb -----------
getch()  ;
 closegraph();
}
عملي شروع مي كنيم و اگر نياز احساس شد ، به سمت توضيحات تئوري مي رويم..
شرح: قسمت گرافيكي برنامه ما همان 4 خطي است كه بين دو خط موازي محدود شده و يك خط closegraph(); . باقيش ديگه ربطي به گرافيك نداره.
البته #include<graphics.h> هم كه در بالاي برنامه نوشته شده ، لازمه ، تا بتوانيم از توابع گرافيكي استفاده كنيم.

يك نكته اينكه خيلي از توابع گرافيكي در مود گرافيكي ، فقط ، عمل مي كنند. يعني از جايي كه initgraph را نوشتيم. و با نوشتن closegraph(); ، هم كه معلومه از محيط گرافيكي خارج مي شويم.
اما ، از اينكلود كردن هدر و باز كردن محيط گرافيكي كه بگذريم ، مي رسيم به دستور ((خط و دايره)) كه كارشان هم معلومه و اين است كه يك خط و دايره با مختصات داده شده مي كشند.
در مورد خط ، آن اعداد مختصات دو سر خط هستند و در مورد دايره مختصات مركز و شعاع.

توضيحات مختصات: گوشه بالا و سمت چپ ، ميشه ((صفر و صفر)) و گوشه پايين و سمت راست ميشه max x و max y . كه بسته به اينه كه از چه حالتي استفاده مي كنيدحالا به اين دو خط بيشتر نگاه مي كنيم.

کد:
int d=DETECT,m;
initgraph(&d,&m,"c:\\tc\\bgi");

يك int تعريف كرده ايم و آن را با detect مساوي قرار داديم. البته ميشد بجاي اين كنترل كننده اتوماتيك خودمان تعيين كننده بوديم ولي من هر چي سورس تا حالا ديدم ، از اين detect استفاده كرده.
راجه به آن m هم فعلا همين طوري استفاده كنيد تا بعدا شرح بدهيم. راجع به آن آدرس هم بايد تغيير بدهيد تا به پوشه bgi شما اشاره كنه. اگر هم برنامه گرافيكي خود را مي خواهيد ببريد روي كامپيوتر ديگري اجرا كنيد ، راه من اينه كه اين پوشه را كه 200 كيلو هست را هم با خود مي برم. و در كامپيوتر دوستتان هم بايد اين پوشه جايي باشه كه به اين آدرس بخورد يا اين كه آدرس را پوشه فعلي كنيد و فايلهاي bgi را در كنار فايل خود بريزيد. .
ديگه فكر كنم اين برنامه چيزي نداره كه توضيح بدهيم. البته داره ولي به موقع اش به طور علمي تر بحث مي كنيم. من خودم فعلا روي كار با حافظه مسلط نشده ام ، وقتي مسلط شدم حتما در جاي مناسب توضيح مي دهم.

.در محيط گرافيكي چون در حالت فول اسكرين فقط اجرا ميشه ، نميشه عكس گرفت.
ولي من يك راهي پيدا كردم. اول بايد برنامه را اجرا كنيم تا فايل exe ساخته بشه، بعد اين فايل exe را در دفعه بعد اجرا مي كنيم. (نه اجرا از داخل محيط توربوسي.)
بعد با دستور exit(1) وقتي بخواهيم خارج بشيم ، يك error ئي مي دهد كه باعث ميشه برنامه از حالت فول اسكرين خارج بشه. و اين طوري من توانستم عكس بگيرم از محيط برنامه. البته راه بي معنايي است ولي فعلا مشكل من را حل كرد.


d3.gif

 

h2k668

New Member
درخواست بازی ساده با توربو سی

می تونی برای من یک برنامه ی ساده ی بازی باtorbo c بفرستی چون استادمون تاقبل عید ازمون می خواهد و من هیچی بلد نیستم
با کمال تشکر
 

memol_515

Active Member
درخواست يك برنامه بسيار ساده ++c

سلام دوستان. از عنوان مشخصه كه چه درخواستي دارم .

دوستان، من خودم برنامه c روي سيستم نصب ندارم، به برنامه نويسي هم علاقه اي ندارم، ترم دوم c داشتم و الان ترم ششم. يادم رفته برنامه نويسي اونم به زبان c!
يه الگوريتم دارم، ممنون ميشم اون رو برام به زبان c بنويسيد و source هه برنامه رو برام اينجا بذاريد.
يا اينكه عكسي از محيطش، و خروجي هه برنامه.

يك دنيا ممنون ميشم.
الگوريتم مربوط به رسم يك خط مستقيم ميشه:

line end points are: (x1,x2), and (y1,y2)
end--> assumed not equal and select the larger of line lenght

if abs(x2-x1)>abs(y2-y1) then lenght = abs (x2-x1)
else lenght = abs (y2-y1)

select the larger of y x to be one raster unit

delta x = (x2-x1) / length
delta y = (y2-y1) / length
round the acuired values.

New-x = x1 + 0.5 * sign (delta x)
New-y = y1 + 0.5 * sign (delta y)

Sign function returne -1, 0, +1 as argument is <0, +0, >0
For (i=1; i<=1; i++)
{
Plot (integer (new-x), integer (new-y))
New-x += delta x;
New-y += delta y;
}

Function integer (-8.5) returns -9 rather than -8
Example: line from (0,0) to (5,5) using DDA. (note length = 5)
من تا پس فردا شب فرصت دارم.
پيشاپيش ممنون
 

hahabia2

New Member
کد بازی به زبان turbo C

میشه یکی لطف کنه کد بازی تیر اندازی رو به زبان turbo C برام بذاره....!
فقط turbo C !
هر بازی ائی که بشه بهش گفت تیراندازی.
 

saalek110

Well-Known Member
کد زیر کار گرافیکی با توربو سی 3 است که یک دایره و یک خط میکشه:
کد:
#include<graphics.h>
#include<conio.h>

void main()
{
char c ;
 menu:
 // ----------- shoroe ghaaleb -------------
int d=DETECT,m;
initgraph(&d,&m,"c:\\tc\\bgi");


circle(320,240,92);
line(10,10,300,300);
 // ----------- entehaye ghaaleb -----------
getch()  ;
 closegraph();
}
به help توربو سی اگر مراجعه کنید توابع لازم مثل پر کردن اشکال را می یابید.
اگر می خواهی توپ حرکت کند باید شکل قبلی را اول با رنگ زمینه بکشی و بعد شکل را جای دیگر رسم کنی. و داخل حلقه این کار را تکرار کنی.
در تاپیک زیر:
http://www.majidonline.com/forum/showthread.php?t=63154
روش ایجاد حلقه و همزمان وزودی گرفتن از کاربر گفته شده.

این فایل را هم ببین:
http://rapidshare.de/files/38852150/graphic_in_c___-_PersianTools_Forums.rar.html
اگر هم سرچ کنید سریع پیدا می کنید.
 

saalek110

Well-Known Member
دیگر تاپیکها :

Tic Tac Toe

سورس گرافیکی سی
شامل:
فوتبال
شطرنج
دوز
ساعت دیواری عقربه دار
محیط رسم
هشت وزیر (گرافیکی)
ماشین حساب(گرافیکی)
یک بازی خیلی ساده شبیه بازی های آتاری
و غیره.
 

hahabia2

New Member
کسی میدونه در turbo c چطور حرکت سهمی یه توپ رو میشه نوشت؟
من دترم برنامۀ بازی تیراندازی رو مینوییسم ولل نمیدونم چرا حرکت سهمی درست اجرا نمیشه.
کدی که برای این کار نوشتم اینه ولی کار نمی کنه.میشه بگید مشکل کجاست:
کد:
#include<stdio.h>
#include<conio.h>
#include<graphics.h>
#include<stdlib.h>
#include<math.h>
int main(void)
{
 float degree=3.14/180;
 int v=100;
 int x,y,g=-10,time,r2=5;
 int gmode,gdriver=DETECT;
 initgraph(&gdriver,&gmode,"");
 x=0;
 y=getmaxy();
 time=0;
 while(x<=getmaxx())
 {
  circle(x,y,r2);
  floodfill(x,y,0);
  time++;
  x=v*cos(45*degree)*time;
  y=((v*sin(45*degree))+(g*time))*time;
  circle(x,y,r2);
  floodfill(x,y,15);
 }
 getch();
 closegraph();
 return 0;
من پرتاب توپ را با زاویه 45 درجه در نظر گرفتم و یک سرعت اولیه(v) .
 

جدیدترین ارسال ها

بالا