|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
21.07.2011, 16:18 | #1 | |
Форумчанин
Регистрация: 02.09.2008
Сообщений: 340
|
Ближайшая точка к курсору
Все привет......известен центр и радиус, как узнать ближайшую точку к курсору в это радиусе?
Цитата:
|
|
21.07.2011, 22:00 | #2 |
Форумчанин
Регистрация: 28.07.2009
Сообщений: 189
|
по теореме пифагора!
с^2= (x1-x2)^2+(y1-y2)^2; находишь минимальный c^2 это и будет искомая точка
пишу программы для студентов и школьников на Pascal, Delphi, C++, WINAPI, assembler
обучаю программированию на паскале(дистанционно);mail: hruslow@gmail.com |
21.07.2011, 22:13 | #3 |
Форумчанин
Регистрация: 09.06.2011
Сообщений: 388
|
Как то так ...
Код:
на неконкретные вопросы даю неконкретные ответы ...
Последний раз редактировалось Step_UA; 22.07.2011 в 19:29. |
22.07.2011, 15:54 | #4 | |
Форумчанин
Регистрация: 02.09.2008
Сообщений: 340
|
Перенес все на компоненты.............вопрос а как узнать ближайшую точку в области радиуса?
Код:
Цитата:
|
|
22.07.2011, 19:35 | #5 |
Форумчанин
Регистрация: 09.06.2011
Сообщений: 388
|
если вы под выражением "в области радиуса" подразумеваете точку на окружности, то изначально все так и было ... x0,y0 - центр круга; x1,y1 - любая точка; r - радиус; x,y-ближайшая точка на окружности
ЗЫ немного подправил код
на неконкретные вопросы даю неконкретные ответы ...
|
22.07.2011, 23:54 | #6 |
Участник клуба
Регистрация: 03.06.2009
Сообщений: 1,815
|
Вам надо в цикле перебрать все известные точки, сравнивая расстояние от них до центра. А самое минимальное значение нужно запомнить. вот и всё.
Программирование - это единственный способ заставить компьютер делать то, что тебе хочется, а не то, что приходится.
|
26.07.2011, 10:17 | #7 | |
Форумчанин
Регистрация: 02.09.2008
Сообщений: 340
|
Код:
Цитата:
|
|
26.07.2011, 14:50 | #8 |
Участник клуба
Регистрация: 03.06.2009
Сообщений: 1,815
|
допустим, r - радиус вашей окружности. одна из точек - это конец курсора с точками xc:=Mouse.CursorPos.X и yc:=Mouse.CursorPos.Y. а остальные точки вокруг курсора могут быть у вас в массиве pixX[i] и pixY[i], где i=1..100, скажем так.
вам нужно перебрать все значения по индексу i: Код:
Программирование - это единственный способ заставить компьютер делать то, что тебе хочется, а не то, что приходится.
Последний раз редактировалось NetSpace; 26.07.2011 в 14:53. |
26.07.2011, 16:02 | #9 | |
Форумчанин
Регистрация: 02.09.2008
Сообщений: 340
|
ок спасибо.......может подскажите еще почему курсор мерцает и как я понимаю получает сразу 2 координаты
Код:
Цитата:
|
|
27.07.2011, 16:03 | #10 |
Участник клуба
Регистрация: 03.06.2009
Сообщений: 1,815
|
Хм, мерцает, если щёлкнуть правой клавишей мышки, а левая всё мерцание вылечивает. причём рисуются координатные оси...
Программирование - это единственный способ заставить компьютер делать то, что тебе хочется, а не то, что приходится.
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
рисование линии противоположно курсору | fate | Общие вопросы Delphi | 3 | 20.05.2011 22:42 |
Графика в TurboPascal: Процедуры, рисующие на экране смешанный лес (лес состоит из елей) по курсору | GreenDay | Помощь студентам | 2 | 04.05.2011 13:31 |
Точка доступа | SNUPY | Компьютерное железо | 9 | 18.02.2011 17:30 |
Ближайшая точка к заданной. Язык си | MirandaX | Помощь студентам | 6 | 26.05.2009 18:25 |
Точка на полигоне? | Роман Радер | Общие вопросы Delphi | 14 | 12.02.2007 17:08 |