|
Алгоритмика Об алгоритмах вообще; методы, обсуждения способов решения |
05.10.2011, 03:02
|
#1
|
Unity/C# кодер
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений (для 5,323 пользователей)
|
Необходимо найти координаты точки
Вобщем задачка такая:
Известны координаты точек 1-3 и радиус окружности. Надо найти координаты точки 4.
Есть какие-либо соображения на этот счет?
|
(Offline)
|
|
05.10.2011, 10:37
|
#2
|
Нуждающийся
Регистрация: 05.10.2011
Адрес: Россия, Южно-Сахалинск
Сообщений: 66
Написано 42 полезных сообщений (для 83 пользователей)
|
Ответ: Необходимо найти координаты точки
Можно взять нормали векторов (1 и 3) и (2 и 3), по ним найти точки касания (противоположные) линий с окружностью (центр + нормаль * радиус). Из полученых отрезков взять лучи и найти точку их пересечения, т.е. точку 4
|
(Offline)
|
|
Эти 2 пользователя(ей) сказали Спасибо Платон Александрович за это полезное сообщение:
|
|
05.10.2011, 10:44
|
#3
|
Unity/C# кодер
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений (для 5,323 пользователей)
|
Ответ: Необходимо найти координаты точки
Самому такой вариант решения пришел на ум, а другие варианты решения могут быть?
|
(Offline)
|
|
05.10.2011, 10:45
|
#4
|
Злобный Админ
Регистрация: 04.09.2005
Сообщений: 5,926
Написано 3,415 полезных сообщений (для 9,330 пользователей)
|
Ответ: Необходимо найти координаты точки
По формулам найти касательные к окружности, потом найти их точку пересечения.
__________________
|
(Offline)
|
|
05.10.2011, 10:46
|
#5
|
Unity/C# кодер
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений (для 5,323 пользователей)
|
Ответ: Необходимо найти координаты точки
Сообщение от SBJoker
По формулам найти касательные к окружности, потом найти их точку пересечения.
|
А по каким формулам? Есть какие-нибудь ссылки?
|
(Offline)
|
|
05.10.2011, 12:01
|
#7
|
Unity/C# кодер
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений (для 5,323 пользователей)
|
Ответ: Необходимо найти координаты точки
По первой ссылке необходимо иметь точку на окружности для вычисления уравнения касательной, которая не известна.
|
(Offline)
|
|
05.10.2011, 16:35
|
#8
|
Мастер
Регистрация: 13.06.2011
Сообщений: 1,103
Написано 481 полезных сообщений (для 1,836 пользователей)
|
Ответ: Необходимо найти координаты точки
Вообще из одной точки к окружности можно провести только две касательные.
Из теоремы Пифагора можно легко найти катет, который не радиус. Уравнение от точки 1 к точке три легко найти. Далее поворотом осей получаем уравнение касательной. Тоже для точки 2. Будет два уравнение пересечение точка четыре.
Последний раз редактировалось dsd, 13.12.2011 в 22:59.
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
05.10.2011, 16:52
|
#9
|
Unity/C# кодер
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений (для 5,323 пользователей)
|
Ответ: Необходимо найти координаты точки
Трудно понимается с поворотом осей, но как получить вектора, повернув их на определенный угол я понимаю, спасибо.
|
(Offline)
|
|
05.10.2011, 19:05
|
#10
|
.
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений (для 6,863 пользователей)
|
Ответ: Необходимо найти координаты точки
Сперва нужно провезти касательные от точек, при этом они должны быть на внешних сторонах окружности.
Точек пересечения может быть ни одной, может быть одна, а может быть и две.
Чтобы определить как провезти касательные, тут не так и просто, т.к. нужно учесть много условий для разных сценариев.
Должна быть весьма простая формула, но за недостатком мат. знаний, я не могу её разработать.
|
(Offline)
|
|
05.10.2011, 19:07
|
#11
|
Элита
Регистрация: 16.01.2010
Адрес: Новосибирск
Сообщений: 2,157
Написано 502 полезных сообщений (для 1,012 пользователей)
|
Ответ: Необходимо найти координаты точки
вопрос:как попиксельно нарисовать линию если заданы начальные и конечные координаты,и можно это сделатбез деления(язык:Си),а то либо много делений выходит,либо при отрисовке всякие косяки
|
(Offline)
|
|
05.10.2011, 19:18
|
#12
|
Unity/C# кодер
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений (для 5,323 пользователей)
|
Ответ: Необходимо найти координаты точки
Сообщение от Платон Александрович
Можно взять нормали векторов (1 и 3) и (2 и 3), по ним найти точки касания (противоположные) линий с окружностью (центр + нормаль * радиус). Из полученых отрезков взять лучи и найти точку их пересечения, т.е. точку 4
|
Этот вариант отпадает, т.к. Нормали не совпадают по направлению с катетом прямоугольного треугольника, образуемым вектором 1-3, радиусом и касательной.
|
(Offline)
|
|
05.10.2011, 19:20
|
#13
|
Unity/C# кодер
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений (для 5,323 пользователей)
|
Ответ: Необходимо найти координаты точки
Сообщение от Костян
вопрос:как попиксельно нарисовать линию если заданы начальные и конечные координаты,и можно это сделатбез деления(язык:Си),а то либо много делений выходит,либо при отрисовке всякие косяки
|
Алгоритм Брезенхэма
Алгоритм Ву
|
(Offline)
|
|
Эти 2 пользователя(ей) сказали Спасибо pax за это полезное сообщение:
|
|
05.10.2011, 20:21
|
#14
|
Unity/C# кодер
Регистрация: 03.10.2005
Адрес: Россия, Рязань
Сообщений: 7,568
Написано 3,006 полезных сообщений (для 5,323 пользователей)
|
Ответ: Необходимо найти координаты точки
В общем теорема Пифагора тут тоже пока не нужна. Но прямоугольный треугольник помог: Зная отношение катета к гипотенузе - это синус угла, на который надо повернуть например вектор 1-3, чтобы получить вектора касательных, потом надо выбрать нужные вектора и найти точку пересечения. Но возможно мне понадобятся точки касания, поэтому и теорема Пифагора пригодится
|
(Offline)
|
|
05.10.2011, 23:10
|
#15
|
Дэвелопер
Регистрация: 06.04.2009
Адрес: Запорожье
Сообщений: 1,500
Написано 1,011 полезных сообщений (для 4,642 пользователей)
|
Ответ: Необходимо найти координаты точки
Сообщение от pax
Этот вариант отпадает, т.к. Нормали не совпадают по направлению с катетом прямоугольного треугольника, образуемым вектором 1-3, радиусом и касательной.
|
Ты же можешь найти угол (гипотенуза и катет-радиус известны) и повернуть нормаль - умножить на матрицу поворота
__________________
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 00:59.
|