PDA

View Full Version : سوال: توليد خطوط تصادفي در صفحه



adamak...
یک شنبه 15 اردیبهشت 1392, 22:43 عصر
سلام دوستان يه برنامه مي خواستم كه به صورت تصادفي خطوط رنگارنگي رو روي صفحه چاپ كنه، كه اندازه خطوط بين 40 تا 100 پيكسل باشه برنامشو نوشتم اما تو قسمت 40 تا 100 پيكسل به مشكل خوردم كسي مي تونه كمكم كنه؟(پيشاپيش ممنون از راهنمايي هاتون)
اينم برنامه اي كه خودم نوشتم:
103755

adamak...
دوشنبه 16 اردیبهشت 1392, 10:32 صبح
سلام كسي نمي تونه كمكم كنه :ناراحت:

arshia_
دوشنبه 16 اردیبهشت 1392, 11:02 صبح
ساده ترین کار اینه که مقدار تصادفی اول برای سول و عرض رو که بدست اومده توی یه متغیر نگه داری کنی و مقدار تصادفی بین 40 تا 100 رو باهاش جمع کنی تا دقیقا اندازه دلخواهت بدست بیاد
شاید نیاز باشه نظارت کنی که اندازه ها طوری انتخاب بشن که خطها از صفحه بیرون نره

adamak...
دوشنبه 16 اردیبهشت 1392, 12:25 عصر
اول از همه از راهنماييتون متشكرم
دوم اينكه: من يه فرمول پيدا كردم براي به دست اوردن فاصله دو نقطه (يا همون طول خط) كه پايين گذاشتمش، بنا به گفته شما مقادير x,y (مختصات نقطه اول) رو و مقدار d (طول خط ) رو هم با تابع random جا گذاري كنم و بعد مقدار a,b (مختصات نقطه دوم) رو به دست بيارم اما از اونجا كه رياضيات من خيلي ضعيفه تو محاسبه به مشكل مي خورم شما ميتونيد كمكم كنيد...؟
103766

adamak...
سه شنبه 17 اردیبهشت 1392, 15:58 عصر
شما رو بخدا اگه كسي مي تونه راهنماييم كنه خواهشا:ناراحت::افسرده:

developing
چهارشنبه 18 اردیبهشت 1392, 10:32 صبح
با سلام

برنامه داره باهات حرف می زنه گوش کن: "برنامه ای که خطوط بین 40 تا 100 پیکسلی رسم کنه."

حالا من واضح تر می نویسم: برنامه ای که خطوطی را رسم کند با این شرط که خطوط بین 40 تا 100 پیکسل باشند.

در مبانی برنامه نویسی می خوانیم هر جا شرط بود از دستور if استفاده کنیم.

مثلا برنامه ات میشه مثل زیر:
توضیح: خطوطی که بینشون فاصله هست رو من اضافه کردم

#include<graphics.h>
#include<stdlib.h>
#include<conio.h>
#include<dos.h>

#include<math.h>

void main (void)
{
int gd, gm;

int x1, x2, y1, y2, d;

dg = DETECT;
initgraph(&gd, &gm, "");
randomize();
while(!kbhit())
{
setcolor(random(15)+1);

x1=random(640);
x2=random(640);
y1=random(480);
y2=random(480);
d = (int) sqrt((x2 - x1) * (x2 - x1) + (y2 - y1) * (y2 - y1));
if(d>=40 && d<=100)

line(x1, y1, x2, y2);

}
}

adamak...
چهارشنبه 18 اردیبهشت 1392, 12:23 عصر
سلام
يه سوال فني (int) كه تو خط 25ام استفاده شده براي چي هستش؟:متفکر:

SlowCode
چهارشنبه 18 اردیبهشت 1392, 12:32 عصر
سلام
int عبارتی که ازش جذر گرفته شده رو به عدد صحیح تبدیل میکنه(قسمت اعشاری رو حذف میکنه).

adamak...
شنبه 21 اردیبهشت 1392, 23:17 عصر
سلام

خيلي ممنون حالا يادم اومد:تشویق: