![]() |
|
|
![]()
|
|
| triam |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 13 Регистрация: 1.12.2006 Репутация: нет Всего: нет |
Задание следующее:
Пользователь вводит координаты точки, потом вводит координаты начала отрезка (х, у) а так же конца..... Прога выводит наикротчайшее расстояние от точки до отрезка.... Примерный алгоритм, думаю, следующий : 1) Вычислить уравнение прямой на которой находится отрезок.... 2)найти расстояние от первой точки отрезка до заданной точки... 3)потом в цикле который стремиться к концу отрезка сравнивать предыдущие расстояние с текущем до тех пор пока предыдущее расстояние не окажется больше настоящего ... Вот а в палне реализации даже не знаю с чего начинать........ Синтаксис ASM-a относительно знаю, но практика практически нулевая - не было времени практиковаться - работа всё занимала ... НАРОД HELP !!! СПАСАЙТЕ!!! Это сообщение отредактировал(а) triam - 1.12.2006, 21:38 |
|||
|
||||
| anwe |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 748 Регистрация: 2.9.2006 Репутация: 1 Всего: 23 |
2) и 3) не подходит. Совершенно не правильно. Если ты можешь сделать 1), то есть найти уравение прямой, содержащей отрезок, то почему нельзя это сделать второй раз?
Есть уравнения прямой, проходящей через заданную точку. А кратчайшее расстояние - этот перпендикуляр. Условие перпендикулярности к1=-1/к2. |
|||
|
||||
| triam |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 13 Регистрация: 1.12.2006 Репутация: нет Всего: нет |
Кратчайшее расстоянее перпендикуляр, тогда когда речь идёт о прямой и точке...
а тут отрезок и точка. Отрезок можно задать такой что перпедикуляр из точки к отрезку нельзя будет провести без продолжения отрезка........ разве нет? |
|||
|
||||
| anwe |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 748 Регистрация: 2.9.2006 Репутация: 1 Всего: 23 |
Почитай свое первое сообщение:
|
|||
|
||||
| triam |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 13 Регистрация: 1.12.2006 Репутация: нет Всего: нет |
anwe, Sor ошибся .......
уже исправил "от точки до отрезка" так будет правильно Это сообщение отредактировал(а) triam - 1.12.2006, 21:39 |
|||
|
||||
| anwe |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 748 Регистрация: 2.9.2006 Репутация: 1 Всего: 23 |
Все равно неправильно по двум критериям.
1. Редактировать свое сообщение, спустя час, по сути, а главное, после ответов других участников форума, если и можно по правилам форума, но уж о-о-очень неправильно!!!! 2. В таком случае твой задача сводится к простому треугольнику. В нем одна боковая сторона меньше другой всегда, кроме случая равнобедренного (равностроннего) трекгольника. Никакой цикл не нужен. Надо провести отрезки от точки к началу отрезка, потом к концу отрезка, их сравнить. И все! Выбрать меньший. Если они равны - найти высоту треугольника. Это геометрия! |
|||
|
||||
| triam |
|
||||
|
Новичок Профиль Группа: Участник Сообщений: 13 Регистрация: 1.12.2006 Репутация: нет Всего: нет |
Согласен, косякнул.....
а ты не не учитываешь того варианта что если две боковые строны не равны, что высота может быть меньше их всех? Добавлено @ 23:08 И ещё, провести отрезки это значит вычислить их длину, следовательно имеем уравнение: l= ((x1-x2)^2+(y1-y2)^2)^1/2 т.е. мы уже имеем дело с числами с плавающей точкой.... а вот в этом я пока вообще не шарю, так что очень прошу помочь... |
||||
|
|||||
| dma |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 31 Регистрация: 1.12.2006 Где: Belarus, Minsk Репутация: нет Всего: 1 |
А что есть высота?
Высота - это и есть перпендикуляр. Теперь на пальцах: если в твоём случае из точки на отрезок можно проложить перпендикуляр - то это и есть кратчайшее расстояние. Если нельзя (т.е. высота лежит ВНЕ треугольника), тогда просто бери меньшую сторону. |
|||
|
||||
| triam |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 13 Регистрация: 1.12.2006 Репутация: нет Всего: нет |
dma, загвоздка в реализации
|
|||
|
||||
| anwe |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 748 Регистрация: 2.9.2006 Репутация: 1 Всего: 23 |
А с геометрией-то понятно?
|
|||
|
||||
| triam |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 13 Регистрация: 1.12.2006 Репутация: нет Всего: нет |
anwe, с ней-то - да...
|
|||
|
||||
| anwe |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 748 Регистрация: 2.9.2006 Репутация: 1 Всего: 23 |
||||
|
||||
| triam |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 13 Регистрация: 1.12.2006 Репутация: нет Всего: нет |
да с тем же самым нахождением длины, ладно к примеру в квадрат мы возведём с помощью fmul (прочёл в книге ) но как быть с корнем? далее не могу построить саму структуру программы, ну что small и stack 100h понятно, (хотя можно и по другому вообще в COM загнать), но что делать дальше? вообщем вопросов слишком много чтобы в короткое время "понабивать синяки" и самому допереть до этого. Поэтому я и прошу вашей помощи.... |
|||
|
||||
| anwe |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 748 Регистрация: 2.9.2006 Репутация: 1 Всего: 23 |
||||
|
||||
| triam |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 13 Регистрация: 1.12.2006 Репутация: нет Всего: нет |
тут же не ASM.... на С я и сам смогу это написать.... Я немогу написать это на ASM-е Самый простой алгоритм это: проверяем наличие перпендикуляра, если его нет сравниваем две стороны. |
|||
|
||||
![]()
|
| Правила форума "Asm: Общие вопросы" | |
|
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, MAKCim. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Asm: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |