PDA

View Full Version : انتخاب مقادیر داخلی یک دایره



مهدی رحیم زاده
شنبه 21 مهر 1386, 08:28 صبح
سلام
من داخل فرم یه دایره رسم کردم و می خوام یک سری نقطه رو اگر که داخل این دایره بودن رو از بانک بخونم .
داخل بانک کلی نقطه ذخیره شدن و من فقط می خوام نقاطی انتخاب بشن که داخل این دایره هستن .

babalengderaz
شنبه 21 مهر 1386, 09:42 صبح
اگه تو طراحی برنامتون دخالت نکرده باشم میتونی تو بانک از 3 فیلد استفاده بکنی که در این صورت باید رنگ داخل دایره با بقیه جاها متفاوت باشد و از getpixel استفاده کنی و شماره رنگ رو به یکی از فیلدها و مختصات رو به دو فیلد دیگه بدی بعد هر کاری که بخواهی میتونی بکنی

hassan razavi
شنبه 21 مهر 1386, 10:21 صبح
از موقعیت X , Y موستون هم در رویدادهایی مثل Move و ... می تونید استفاده کنید

مهدی رحیم زاده
شنبه 21 مهر 1386, 12:24 عصر
من نقاط رو انتخاب می کنم اما مشکلی که هست اینه :
من نقطه مرکزی (X,Y) و شعاع(R) رو دارم برای اینکه نقاط درونی دایره رو پیدا کنم اول دو تا قطر رو بدست میارم ( x ± r و y ± r ) ولی اشکال کار وقتی پیش میاد که مقادیر بدست اومده تو max قرار میگیرن ، تو این حالت یک مربع فرضی ایجاد میشه و مقادیر داخلی اون انتخاب میشن . چکار کنم که اون قسمت های اضافه مربع انتخاب نشن .

ممنون

hassan razavi
شنبه 21 مهر 1386, 12:35 عصر
وفتی شما مرکز و شعاع دایره را دارید و حالا برای اینکه بفهمید نقطه مورد نظر داخل دایره است ، اگه فاصله نقطه جدید تا مرکز دایره کوچتر از شعاع بود یعنی هست.

PC2st
شنبه 21 مهر 1386, 22:21 عصر
اگر X1 و Y1 مرکز دایره و R شعاع آن باشد. برای متوجه شدن از اینکه نقطه x , y در داخل این دایره هست:
چون X1 و Y1 و R رو داریم، پس میشه معادله دایره رو تشکیل داد، پس با قرار دادن x و y در معادله، اگر جواب معادله صفر شد، پس روی دایره قرار داره، اگر جوابش کوچکتر از صفر شد یعنی داخل دایره است و اگر جوابش بزرگتر از صفر شد، پس یعنی در خارج از دایره قرار داره.
فرمول دایره:


(X-X1)^2+(Y-Y1)^2-R^2

//check it with x , y
(x-X1)^2+(y-Y1)^2-R^2 //is 0 or > or <