Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Игры";
Текущий архив: 2006.09.10;
Скачать: [xml.tar.bz2];

Вниз

Пересечение окружности с прямоугольником   Найти похожие ветки 

 
Strech   (2005-12-19 10:29) [0]

Помогите найти быстрый алгоритм определения пересекается ли окружность с прямоугольником, а также алгоритм нахождения точки их пересечения, ближайшей к центру окружности.


 
Darthman ©   (2005-12-19 11:17) [1]

пересекается ли окружность с прямоугольником - пересекается если центр окружности лежит внутри или на гранях прямоугольника.
Пересекается ли окружность с гранями прямоугольника - пересекается если окружность пересекается с каждой гранью (тоесть с 4 линиями).


 
MBo ©   (2005-12-19 13:20) [2]

>нахождения точки их пересечения, ближайшей к центру окружности

Это круто! ;))

Определение окружности помнишь?


 
П7   (2005-12-19 14:08) [3]

Наверное имелась в виду точка максимального проникновения прямоугольника в окружность.


 
MBo ©   (2005-12-19 16:54) [4]

>П7
Тогда, видимо, речь все же должна идти о круге. Автору стоит уточнить


 
XProger ©   (2005-12-19 20:34) [5]

012
345
678

В точке 4 находится твоя прямоугольник. Области 0, 2, 6, 8 - находятся на пересечении граней прямоугольника.
Если окружность (круг) находится в областях 1, 3, 5, 7 - просто считаешь длину перпендикуляра от центра твоей окружности (круга) до грани прямоугольника. И если эта длина меньше радиуса окружности - значит есть проникновение в точке одна из координат которой совпадает с коордианоатой точки, а вторая с координатой грани (x или y в зависимости от расположения).
Если центр окружности находится в области 0, 2, 6 или 8 - считай расстояние от центра до точки пересечения граней прямоугольника. И аналогично высчитываешь проникновение, только координаты точки проникновения будут совпадать с одной из вершин прямоугольника :)

P.S.
Это не единственный способ, посиди с листочком и ручкой, подумай...



Страницы: 1 вся ветка

Форум: "Игры";
Текущий архив: 2006.09.10;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.041 c
3-1152072641
elyseev
2006-07-05 08:10
2006.09.10
Переиндексация DBF


15-1155709272
Term
2006-08-16 10:21
2006.09.10
Приложение под .NET


15-1155533431
Ega23
2006-08-14 09:30
2006.09.10
С Днём рождения! 13 августа


15-1155899398
Труп Васи Доброго
2006-08-18 15:09
2006.09.10
Пока!


15-1156107099
Владимир_мпп
2006-08-21 00:51
2006.09.10
Часовой пояс?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский