Модераторы: Poseidon
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> [геометрия] прямая и перпендикуляр, прямая и перпендикуляр 
:(
    Опции темы
Artemon
Дата 18.3.2008, 13:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


а ты мне нравишься
***


Профиль
Группа: Завсегдатай
Сообщений: 1771
Регистрация: 24.2.2004
Где: Челябинск

Репутация: нет
Всего: 20



есть прямая, заданная координатами (Ax,Ay), (Bx,By)

Как получить координаты точки, находящейся на расстоянии L от этой прямой.
И если провести прямую через точки [(Ax,Ay), (Искомая точка)], то эта прямая будет перпендикуляром к исходной прямой.


Жесть.


--------------------
Контроль топлива на топливозаправщиках, мониторинг автотранспорта, расчет зарплаты водителей www.rscat.ru
PM MAIL   Вверх
Sardar
Дата 18.3.2008, 13:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

Репутация: 1
Всего: 317



Код

a = (By-Ay) / (Bx-Ax);
b = Ay;

f(x) = a*x + b; - исходная прямая

(x, f(x)) - любая точка на прямой, то
(x + u, f(x) + v) - точка на параллельной прямой, сдвинутой от нашей на L
ang = (atan(а) [+-] pi/2) - направление, крутим в обе стороны
u = cos(ang)*L;
v = sin(ang)*L;

f(x + u) = f(x) + v; - сдвинутая в сторону на L точка, на прямой перпендикулярной f(x)



--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
Akina
Дата 18.3.2008, 13:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 17
Всего: 454



Цитата(Artemon @  18.3.2008,  14:00 Найти цитируемый пост)
Как получить координаты точки, находящейся на расстоянии L от этой прямой.

Совокупность точек, находящихся на заданном расстоянии от прямой, есть объединение двух прямых, а совсем даже не одна точка.



--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
v2v
Дата 18.3.2008, 13:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1620
Регистрация: 20.9.2006
Где: Киев

Репутация: нет
Всего: 56



Цитата(Akina @  18.3.2008,  13:44 Найти цитируемый пост)
Совокупность точек, находящихся на заданном расстоянии от прямой, есть объединение двух прямых, а совсем даже не одна точка.

ух закрутил smile
ты подразумевал что на расстоянии Л относительно нашей прямой будет ещё одна прямая , а не точка?)


--------------------
PM   Вверх
maxim1000
Дата 18.3.2008, 14:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 3334
Регистрация: 11.1.2003
Где: Киев

Репутация: 24
Всего: 110



Цитата(Akina @  18.3.2008,  13:44 Найти цитируемый пост)
Совокупность точек, находящихся на заданном расстоянии от прямой, есть объединение двух прямых, а совсем даже не одна точка.

думаю, здесь просто небольшая неточность в условии:

Цитата(Artemon @  18.3.2008,  13:00 Найти цитируемый пост)
Как получить координаты точки, находящейся на расстоянии L от этой прямой.
И если провести прямую через точки [(Ax,Ay), (Искомая точка)], то эта прямая будет перпендикуляром к исходной прямой.

перед "И" должна быть запятая, а не точка
тогда здесь описываются два условия, которым должны удовлетворять решения


--------------------
qqq
PM WWW   Вверх
Artemon
Дата 18.3.2008, 19:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


а ты мне нравишься
***


Профиль
Группа: Завсегдатай
Сообщений: 1771
Регистрация: 24.2.2004
Где: Челябинск

Репутация: нет
Всего: 20



Следуя примеру, который дал Sardar, я попробовал теорию на практике:

Ax = 1, Ay = 1
Bx = 3, By = 3

L = 1

a = (3-1) / (3-1) = 1;
b = 1;

// Попробовал в уравнение прямой подставил единичку: f(x) = 1*1+1 //f(x) = a*x + b;
// Не сраслось, получается что при x = 1, y = 2, а у нас на прямой такой точки нет.

ang = (atan(а) [+-] pi/2) - направление, крутим в обе стороны // Не пойму в каких случаях ставить -, а в каких + ?

Допустим попробовали с плюсом:
ang = atan(1)+3.14/2 = 0.785398163+1.57=2.35539816 // Надеюсь google правильно посчитал smile

u = cos(ang)*L;
v = sin(ang)*L;

u = cos(2.35539816)*1 = -0.706543467
v= sin(2.35539816)*1 = 0.707669647

f(x + u) = f(x) + v; - сдвинутая в сторону на L точка, на прямой перпендикулярной f(x)
f(1+-0.706543467) = f(1)+v  // Здесь равенство сошлось

Но что-то я не пойму, а где координаты этой точки?


--------------------
Контроль топлива на топливозаправщиках, мониторинг автотранспорта, расчет зарплаты водителей www.rscat.ru
PM MAIL   Вверх
cardinal
Дата 18.3.2008, 20:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Инженер
****


Профиль
Группа: Экс. модератор
Сообщений: 6003
Регистрация: 26.3.2002
Где: Германия

Репутация: 15
Всего: 99



Цитата(v2v @  18.3.2008,  12:58 Найти цитируемый пост)
ты подразумевал что на расстоянии Л относительно нашей прямой будет ещё одна прямая , а не точка?)

Две прямых.


--------------------
Немецкая оппозиция потребовала упростить натурализацию иммигрантов
В моем блоге: Разные истории из жизни в Германии

"Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино".  А. и Б. Стругацкие
PM   Вверх
Artemon
Дата 18.3.2008, 21:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


а ты мне нравишься
***


Профиль
Группа: Завсегдатай
Сообщений: 1771
Регистрация: 24.2.2004
Где: Челябинск

Репутация: нет
Всего: 20



Цитата

f(x + u) = f(x) + v; - сдвинутая в сторону на L точка, на прямой перпендикулярной f(x)



--------------------
Контроль топлива на топливозаправщиках, мониторинг автотранспорта, расчет зарплаты водителей www.rscat.ru
PM MAIL   Вверх
Sardar
Дата 18.3.2008, 22:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

Репутация: 1
Всего: 317



Цитата(Artemon @  18.3.2008,  18:05 Найти цитируемый пост)
// Не сраслось, получается что при x = 1, y = 2, а у нас на прямой такой точки нет.

(Ax, Ay) взяли за базу (origin), от него и считай (т.е. (x-Ax))

Цитата(Artemon @  18.3.2008,  18:05 Найти цитируемый пост)
Не пойму в каких случаях ставить -, а в каких + ?

Представь вертикальную прямую, от неё можно отложить перпендикулярный отрезок длинной L в обе стороны, ты не указал в какую, я привёл обе.

Цитата(Artemon @  18.3.2008,  18:05 Найти цитируемый пост)
Но что-то я не пойму, а где координаты этой точки? 

Если (x, y) точка на исходной прямой, то (x+u, y+v) - искомая (сдвинутая) точка.


--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
inside_pointer
Дата 19.3.2008, 09:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 344
Регистрация: 9.3.2008

Репутация: нет
Всего: 12



Цитата

И если провести прямую через точки [(Ax,Ay), (Искомая точка)], то эта прямая будет перпендикуляром к исходной прямой.

  
Bx - Ax = ? (расстояние между абсциссами)
By - Ay = ? (расстояние между ординатами)

{ X1x - Ax = L 
{ X2x - X1x = (расстояние между абсциссами)

{ X1y - Ay = L
{ X2y - X1y = (расстояние между ординатами)

В итоге у тебя

{ X2x = (расстояние между абсциссами) + L + Ax
{ X2y = (расстояние между ординатами) + L + Ay

Видимо точка с координатами (X1x, X1y) выражается через Bx, By
PM MAIL   Вверх
Artemon
Дата 19.3.2008, 10:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


а ты мне нравишься
***


Профиль
Группа: Завсегдатай
Сообщений: 1771
Регистрация: 24.2.2004
Где: Челябинск

Репутация: нет
Всего: 20



Цитата

Представь вертикальную прямую, от неё можно отложить перпендикулярный отрезок длинной L в обе стороны, ты не указал в какую, я привёл обе.


А если прямая идет не вертикально, а по наклону, проходя через [0,0], [3,3]

Тогда как знак определить?

Есть способ по которому можно однозначно определить знак?



--------------------
Контроль топлива на топливозаправщиках, мониторинг автотранспорта, расчет зарплаты водителей www.rscat.ru
PM MAIL   Вверх
shurik_catfish
Дата 21.3.2008, 12:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 16.2.2008

Репутация: нет
Всего: нет



Пусть (Lx,Ly) искомая точка тогда расстояние от точки а до этой точки будет
L^2=(Ax-Lx)^2+(Ay-Ly)^2    (1)
С дроугой стороны так как расстоянием от данной точки до прямой называеться длина перпендикуляра то:
скалярно AB*AL должнго быть =0
тоесть (Bx-Ax)*(Lx-Ax)+(By-Ay)*(Ly-Ay)=0   (2)
(Если Ax,Ay и Bx,By концы вектора то его координаты находяться как разность Bx-Ax , By-Ay
 или Ax-Bx , Ay-By  зависит от енго направления)
Таким образом решая систему уравнений (1)и(2) и находим координаты точки (Lx,Ly)...
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Центр помощи"

ВНИМАНИЕ! Прежде чем создавать темы, или писать сообщения в данный раздел, ознакомьтесь, пожалуйста, с Правилами форума и конкретно этого раздела.
Несоблюдение правил может повлечь за собой самые строгие меры от закрытия/удаления темы до бана пользователя!


  • Название темы должно отражать её суть! (Не следует добавлять туда слова "помогите", "срочно" и т.п.)
  • При создании темы, первым делом в квадратных скобках укажите область, из которой исходит вопрос (язык, дисциплина, диплом). Пример: [C++].
  • В названии темы не нужно указывать происхождение задачи (например "школьная задача", "задача из учебника" и т.п.), не нужно указывать ее сложность ("простая задача", "легкий вопрос" и т.п.). Все это можно писать в тексте самой задачи.
  • Если Вы ошиблись при вводе названия темы, отправьте письмо любому из модераторов раздела (через личные сообщения или report).
  • Для подсветки кода пользуйтесь тегами [code][/code] (выделяйте код и нажимаете на кнопку "Код"). Не забывайте выбирать при этом соответствующий язык.
  • Помните: один топик - один вопрос!
  • В данном разделе запрещено поднимать темы, т.е. при отсутствии ответов на Ваш вопрос добавлять новые ответы к теме, тем самым поднимая тему на верх списка.
  • Если вы хотите, чтобы вашу проблему решили при помощи определенного алгоритма, то не забудьте описать его!
  • Если вопрос решён, то воспользуйтесь ссылкой "Пометить как решённый", которая находится под кнопками создания темы или специальным флажком при ответе.

Более подробно с правилами данного раздела Вы можете ознакомится в этой теме.

Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Poseidon, Rodman

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Центр помощи | Следующая тема »


 




[ Время генерации скрипта: 0.1279 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.