Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Поиск кротчайшего пути от точки до отрезка, НАРОД HELP!!!! ГОРЮ !!!!!! 
:(
    Опции темы
triam
Дата 1.12.2006, 20:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Задание следующее:
Пользователь вводит координаты точки,
потом вводит координаты начала отрезка (х, у)  а так же конца.....
Прога выводит наикротчайшее расстояние  от точки до отрезка....

Примерный алгоритм, думаю, следующий :
1) Вычислить уравнение прямой на которой находится отрезок....
2)найти расстояние от первой точки отрезка до заданной точки...
3)потом в цикле который стремиться к концу отрезка сравнивать предыдущие расстояние с текущем до тех пор пока предыдущее расстояние не окажется больше настоящего ...


Вот а в палне реализации даже не знаю с чего начинать........
Синтаксис ASM-a относительно знаю,  но практика практически нулевая - не было времени практиковаться - работа всё занимала ...
НАРОД HELP !!! СПАСАЙТЕ!!!

 

Это сообщение отредактировал(а) triam - 1.12.2006, 21:38
PM MAIL   Вверх
anwe
Дата 1.12.2006, 20:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



2) и 3) не подходит. Совершенно не правильно. Если ты можешь сделать 1), то есть найти уравение прямой, содержащей отрезок, то почему нельзя это сделать второй раз?
Есть уравнения прямой, проходящей через заданную точку. А кратчайшее расстояние - этот перпендикуляр. Условие перпендикулярности к1=-1/к2.
PM MAIL   Вверх
triam
Дата 1.12.2006, 20:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Кратчайшее расстоянее перпендикуляр, тогда когда речь идёт о прямой  и точке...
а тут отрезок и точка.
Отрезок можно задать такой что перпедикуляр из точки к отрезку нельзя будет провести без продолжения отрезка........ разве нет?


PM MAIL   Вверх
anwe
Дата 1.12.2006, 21:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Почитай свое первое сообщение:
Цитата
Прога выводит наикротчайшее расстояние  от точки до прямой....

PM MAIL   Вверх
triam
Дата 1.12.2006, 21:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



anwe, Sor ошибся .......

уже исправил "от точки до отрезка" так будет правильно

Это сообщение отредактировал(а) triam - 1.12.2006, 21:39
PM MAIL   Вверх
anwe
Дата 1.12.2006, 22:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Все равно неправильно по двум критериям.
1. Редактировать свое сообщение, спустя час, по сути, а главное, после ответов других участников форума, если и можно по правилам форума, но уж о-о-очень неправильно!!!!

2. В таком случае твой задача сводится к простому треугольнику. В нем одна боковая сторона меньше другой всегда, кроме случая равнобедренного (равностроннего) трекгольника.
Никакой цикл не нужен. Надо провести отрезки от точки к началу отрезка, потом к концу отрезка, их сравнить. И все! Выбрать меньший. Если они равны - найти высоту треугольника. Это геометрия!
PM MAIL   Вверх
triam
Дата 1.12.2006, 22:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Цитата(anwe @ 1.12.2006,  22:08)
Все равно неправильно по двум критериям.
1. Редактировать свое сообщение, спустя час, по сути, а главное, после ответов других участников форума, если и можно по правилам форума, но уж о-о-очень неправильно!!!!



Согласен, косякнул.....

Цитата

2. В таком случае твой задача сводится к простому треугольнику. В нем одна боковая сторона меньше другой всегда, кроме случая равнобедренного (равностроннего) трекгольника.
Никакой цикл не нужен. Надо провести отрезки от точки к началу отрезка, потом к концу отрезка, их сравнить. И все! Выбрать меньший. Если они равны - найти высоту треугольника. Это геометрия!


а ты не не учитываешь того варианта что если две боковые строны не равны, что высота может быть меньше их всех?

Добавлено @ 23:08 
И ещё, провести отрезки это значит вычислить их длину, следовательно имеем
уравнение:
l= ((x1-x2)^2+(y1-y2)^2)^1/2
т.е. мы уже имеем дело с числами с плавающей точкой....  а вот в этом я пока вообще не шарю, так что очень прошу помочь...

PM MAIL   Вверх
dma
Дата 1.12.2006, 23:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 31
Регистрация: 1.12.2006
Где: Belarus, Minsk

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



А что есть высота? smile
Высота - это и есть перпендикуляр.
Теперь на пальцах: если в твоём случае из точки на отрезок можно проложить перпендикуляр - то это и есть кратчайшее расстояние. Если нельзя (т.е. высота лежит ВНЕ треугольника), тогда просто бери меньшую сторону.
PM MAIL ICQ Skype GTalk   Вверх
triam
Дата 1.12.2006, 23:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



dma, загвоздка в реализации
PM MAIL   Вверх
anwe
Дата 1.12.2006, 23:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



А с геометрией-то понятно?
PM MAIL   Вверх
triam
Дата 1.12.2006, 23:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



anwe, с ней-то - да...
PM MAIL   Вверх
anwe
Дата 1.12.2006, 23:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(triam @  1.12.2006,  22:11 Найти цитируемый пост)
загвоздка в реализации 

В чем именно?
PM MAIL   Вверх
triam
Дата 1.12.2006, 23:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Цитата(anwe @ 1.12.2006,  23:22)
В чем именно?

да с тем же самым нахождением длины,
ладно к примеру в квадрат мы возведём с помощью 
fmul (прочёл в книге ) но как быть с корнем?

далее не могу построить саму структуру программы, 
ну что small и stack 100h понятно, (хотя можно и по другому вообще в COM загнать), но что делать дальше?

вообщем вопросов слишком много чтобы в короткое время "понабивать синяки"  и самому допереть до этого. Поэтому я и прошу вашей помощи....
PM MAIL   Вверх
anwe
Дата 1.12.2006, 23:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



PM MAIL   Вверх
triam
Дата 1.12.2006, 23:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Цитата(anwe @ 1.12.2006,  23:43)
Посмотри это http://forum.vingrad.ru/index.php?showtopi...st&p=902302

тут же не ASM....
на С я и сам смогу это написать....
Я немогу написать это на ASM-е 

Самый простой алгоритм это:
 проверяем наличие перпендикуляра, если его нет сравниваем две стороны.
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Asm: Общие вопросы"
MAKCim
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • Не забывайте пользоваться кнопкой КОД.
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к разделу форума. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

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

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


 




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


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

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