PDA

View Full Version : کمک برای حل مسئله : ترسیم شکل ها



adelsql
جمعه 27 خرداد 1390, 12:42 عصر
با سلام
دوستان عزیز اگه امکانش هست در مورد ترسیم این شکل ها کمک کنید و اگه امکانش هست کدها نوشتن این عکس ها را بنویسید :
1-با استفاده از PutPixel یا FloodFill ترسیم کنید :
http://s26.uploadbaz.com/files/1/ew269dghh2hpaj/1.jpg
2-با استفاده از floodfill ترسیم کنید :
http://s19.uploadbaz.com/files/8/yez1qh3mx12jnt/2.jpg
3-با استفاده از دستورات انیمیشن یک دایره را در اضلاع یک مثلث حرکت دهید :
http://s4.uploadbaz.com/files/2/nzipa7knx8xiuy/3.jpg
4-با استفاده از تبدیلات دو بعدی یک دایره را بروی یک نیم دایره حرکت دهید :
http://s10.uploadbaz.com/files/4/g24c2au654zklk/4.jpg

ممنون میشم کمکم کنید

مصطفی ساتکی
جمعه 27 خرداد 1390, 16:28 عصر
وقتي به شما همچين سوالي داده ميشه و ميگن با PutPixel یا FloodFill ترسيم كنيد يعني خودتون با خط و دايره رسم كنيد. در سوال حركت دايره بروي يك مثلث سه تا خط داريد يه function بنويسيد با الگوريتم برسنهام كه تمامي نقاط يك خط به شما بده ورودي تابع ابتدا و انتهاي پاره خط.
مسئله آخر هم كه رسم دايره است تابعي بنويسيد كه مختصات دايره رو بهتون بده x=rcos(teta) y=rsin(teta)
براي پياده سازي floodfill از هشت خونه مجاور هر خونه استفاده كنيد و نقاطي كه در گام بعدي بايستي پردازش روشون صورت بگيره تو يه stack نگهداري كنيد.
تو سايت بگرديد سورس همه اين موارد وجود داره

adelsql
جمعه 27 خرداد 1390, 17:32 عصر
با سلام
ببخشید اگه امکانش هست لینک ها رو بزارید
واقعاً اینقدر به ما یاد ندادن و به اندازی دو چندان چیزی ه یاد دادن و کار کردن باید به استادها تحویل بدی .
من که هرچی گشتم هم چین چیزهایی پیدا نکردم
اگه وقت دارید و امکانش هست ممنون میشم این ها رو بنویسید .

adelsql
جمعه 27 خرداد 1390, 18:33 عصر
با سلام
دوستان عزیز سال یک و دو رو حل کردم :
سوال یک :

#include<iostream.h>
#include<conio.h>
#include<graphics.h>
#include<alloc.h>
#include<dos.h>
#include<math.h>
void main()
{
int gd=0,gm=0,error;
initgraph(&gd,&gm,"c:\\tc\\bgi");
error=graphresult();
cout<<error;
int yc = getmaxy()/2;
int xc = getmaxx()/2;
int x,y;
int r=100;
for(x=xc-r;x<=xc+r;x++)
{
for(y=yc-r;y<=yc+r;y++)
{
if(pow((x-xc),2)+pow((y-yc),2)<=pow(r,2))
putpixel(x,y,3);
}
}
r=70;
for(x=xc-r;x<=xc+r;x++)
{
for(y=yc-r;y<=yc+r;y++)
{
if(pow((x-xc),2)+pow((y-yc),2)<=pow(r,2))
putpixel(x,y,5);
}
}
cout<<x<<":"<<y;
floodfill(310,290,3);
r=40;
for(x=xc-r;x<=xc+r;x++)
{
for(y=yc-r;y<=yc+r;y++)
{
if(pow((x-xc),2)+pow((y-yc),2)<=pow(r,2))
putpixel(x,y,3);
}
}






getch();

جواب سوال دو :

#include<iostream.h>
#include<conio.h>
#include<graphics.h>
#include<alloc.h>
#include<dos.h>
#include<math.h>
void main()
{
int gd=0,gm=0,error;
initgraph(&gd,&gm,"c:\\tc\\bgi");
error=graphresult();
cout<<error;
int yc = getmaxy()/2;
int xc = getmaxx()/2;
setbkcolor(BLUE);
setcolor(RED);
rectangle(xc-90,yc-90,xc+90,yc+90);
circle(xc,yc,90);
floodfill(xc+80,yc-80,RED);
getch();
}
ممنون میشم دوتای دیگه رو دوستان با تجربه تر کار کنن و یا حداقل یه راهنمایی اساسی کنن
دوستان متاسفانه الگوریتم برسنهام برای ترسیم خط رو به ما یاد ندادن ممنون میشم از یه روش دیگه راهنماییم کنید .
ممنون میشم

مصطفی ساتکی
جمعه 27 خرداد 1390, 18:51 عصر
يه سرچ مي كرديد پيدا مي شد.
http://www.c.happycodings.com/Games_and_Graphics/code18.html

adelsql
جمعه 27 خرداد 1390, 19:31 عصر
با سلام
دوست عزیز خدا خیرت بده شما که می تونی یه کمک کن این دوتا رو بنویس یه 10 نفری هستیم برات دعا می کنیم .
فردا دوتا امتحان داریم ...

مصطفی ساتکی
جمعه 27 خرداد 1390, 19:57 عصر
اين مشكل شماست خدتون هم حلش كنيد

adelsql
جمعه 27 خرداد 1390, 20:22 عصر
با سلام
واقعاً که .........
خیلی ممنون خیلی زحمت کشیدید

adelsql
شنبه 28 خرداد 1390, 00:11 صبح
با سلام
سوال یک و دو و سه را خودم حل کردم .
سوال چهار رو هر ماری کردم نتونستم .
اگه امکانش هست یه دوست عزیزی زحمتش رو بکشه
خیلی ممنون