ورود

View Full Version : مسئله : آیا نقطه در سمت راست خط قرار دارد یا نه؟



mostafa_shaeri_tj
شنبه 09 مهر 1390, 12:53 عصر
سلام.
با چه الگوریتمی میتونم بدست بیارم که آیا یک نقطه در سمت راست یک خط جهت دار است یا نه؟

مسعود اقدسی فام
شنبه 09 مهر 1390, 17:24 عصر
فرض کنیم (x1,y1) و (x2,y2) دو سر خط، و نقطه مورد نظر (x3,y3) باشه. ماتریسی به فرم زیر رو در نظر بگیرید:

x1 - x3 , y1 - y3
x2 - x3 , y2 - y3

اگه دترمینان این ماتریس مثبت شد، یعنی نقطه سمت چپ اون خط قرار داره؛ اگه منفی شد یعنی سمت راست قرار داره، و اگه صفر شد یعنی روی خط یا در امتداد اون قرار داره.

البته این مساله که کدوم نقطه رو نقطه اول و کدوم یکی رو نقطه دوم در نظر بگیری علامت دترمینان رو عوض می‌کنه که در نتیجه استنتاج رو هم باید بر عکس کنی!

مصطفی ساتکی
یک شنبه 10 مهر 1390, 10:19 صبح
البته دترمینان این ماتریس
x2-x1 y2-y1
x3-x1 y3-y1

به صورت زیر position = sign ( (x2-x1)*(y3-y1) - (y2-y1)*(x3-x1) )
البته از راه قطبی و دکارتی هم میشه مسئله رو حل کرد با نقطه و زاویه عمود خط یه خط دیگر تشکیل می دیم و بوسیله نقطه تقاطع این 2 خط می تونیم کار بالا رو به نحوی دیگه انجام بدیم

mostafa_shaeri_tj
شنبه 23 مهر 1390, 11:19 صبح
یه نقطه ای رو که روی خط بود (نه راست نه چپ) رو تو این فرمول تست کردم جواب 0 داد. میشه از این فرمول واسه چک کردن اینکه نقطه روی خط هست یا نه هم استفاده کرد؟
اگه میشه پس میشه گفت این فرمول همون معادله خطه؟

مسعود اقدسی فام
شنبه 23 مهر 1390, 18:50 عصر
یه نقطه ای رو که روی خط بود (نه راست نه چپ) رو تو این فرمول تست کردم جواب 0 داد. میشه از این فرمول واسه چک کردن اینکه نقطه روی خط هست یا نه هم استفاده کرد؟
اگه میشه پس میشه گفت این فرمول همون معادله خطه؟

بله این امکان وجود داره.

البته اگه پاره خط باشه، ممکنه نقطه روی پاره خط یا در امتداد اون باشه.