ايران ويج

نسخه‌ی کامل: مکان های تصادفی
شما در حال مشاهده‌ی نسخه‌ی متنی این صفحه می‌باشید. مشاهده‌ی نسخه‌ی کامل با قالب بندی مناسب.
[/b]سلام خسته نباشيد
مي خواستم بدونم چطوري مي شه داخل يه دايره(مثلا با اندازه 1000و1000و1000)با متد پي ست در مکان تصادفي(نقطه ها فقط داخل دايره و روي خطوط دايره نقطه بيافتد) و بارنگ تصادفي نقطه رسم بشه(من,در رسم خطوط در محوطه مخصوص((دايره)) مشکل دارم)اگه کمکم کنيد ممنون مي شم
خدا حافظ
فکر می کنم راه های زیادی داشته باشه ولی من یکیش به نظرم اومد. می تونی هر نقطه ای که خواستی قرار بدی، ابتدا با استفاده از مختصات اون، عرض از مبدا رو بدست بیاری ( با فرض اینکه مبدا همون مرکز دایره هست وگرنه عرض از مرکز دایره رو باید بدست بیاری ) و اگر کوچکتر از شعاع دایره بود رسمش می کنی .
برای رنگ تصادفی هم می تونی مقدار رنگ رو با تابع RND بسازی.
ممنونم از پاسختون. فکر کنم یه چیزایی فهمیدم.
سلام
یکمی روش کار کردم اما نتونستم(آخه ما تازه کاریم)می شه یه سورس کوچولو بذارید.
سلام
خیلی هم نباید ساده باشه !
چون مستطیل یا مربع نیست که !
اینو به نظر من حتما برای حلش باید از روابط مثلثاتی کمک بگیری
سعی کن روش فکر کنی .
البته اگه خودمم وقت کردم برات می نویسم.
این کد هم برای رنگ تصادفی
کد:
RGB(Rnd * 255, Rnd * 255, Rnd * 255)
موفق باشی
برای پیدا کردن عرض از مبدا یک نقطه کافیه شما طول و عرض نقطه رو داشته باشه ( مقادیر X و Y که برای رسم نقطه به کار می بری ) حالا قدر مطلق X,Y رو به دست میاری و با هم جمعمی کنی.

A = Abs ( X ) + Abs ( Y ) ' fff

حالا فرض می کنیم مرکز دایره شما همون مبدا مختصات ( X و Y مرکز دایره { 0 و 0 } هست ) و شما دایره ای به شعاع 1000 پیکسل دارید . در این حالت اگه مقدار A کمتر از 1000 باشه ، نقطه مورد نظر درون دایره قرار خواهد داشت و چنانچه دقیقا 1000 باشه نقطه روی دایره و اگر هم بزرگتر باشه خارج از دایره قرار داره.

اگه مرکز دایره جایی به جز مبدا مختصات باشه، باید برای تعیین مقدار A یکم بیشتر تلاش کنی . برای این کار باید مبدا مختصات رو همون مرکز دایره در نظر بگیری و مختصات نقطه ها رو بر طبق اون دوباره حساب کنی.

مثلا اگه مرکز دایره به جای نقطه { 0 و 0 } با همون مبدا مختصات در نقطه { 100و 0 } قرار داشت، و مختصات حقیقی نقطه شما {400 و 200- } هست ، برای تعیین عرض از مبدا باید مقدار X اون رو از X دایره که 100 هست کم کنید. یعنی باید عرض از مبدا نقطه ای با این مختصات رو حساب کنید { 300 و 200-}

خوب همه چیز آماده است چرا کدنویسیش رو شروع نمی کنی ؟ ;))
سلام
نمیدونم با روش قدر مطلقی که Di Di جان فرمودن میشه یا نه ! (البته اگه خودش لطف کنه سورس روش قدرمطلقی رو بنویسه جالب میشه !)
اما من به یه روش دیگه حلش کردم
این هم کد :

کد:
Dim Xc, Yc, Rc As Integer

Private Sub Form_Load()
    Xc = 1500
    Yc = 1500
    Rc = 1000
    Circle (Xc, Yc), Rc
End Sub

Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
    Dim deltaX, deltaY As Integer
    Dim deltaR As Integer
    deltaX = X - Xc
    deltaY = Y - Yc
    deltaR = Sqr((deltaX ^ 2 + deltaY ^ 2))
    If deltaR <= Rc Then
        PSet (X, Y)
    End If
End Sub
موفق باشی
سلام
دست درد نکنه کارم رو را انداختی(البته یه کمی باید تغیرش بدم)
خدا حافظ