Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 20.05.2011, 11:26   #1
fate
Форумчанин
 
Аватар для fate
 
Регистрация: 17.03.2009
Сообщений: 318
По умолчанию рисование линии противоположно курсору

на форме есть объект TShape (круглый) нужно рисовать линию от него в противоположную сторону от курсора. Линия свой размер не должна менять. найти угол между осью у на которой лежит TShape и курсором я могу, но не соображу как на противоположной стороне под таким же углом нарисовать линию.
Что бы было наглядно я нарисовал то что хочу сделать в аттаче
Изображения
Тип файла: jpg 1.jpg (67.4 Кб, 171 просмотров)
fate вне форума Ответить с цитированием
Старый 20.05.2011, 17:13   #2
MoBLer
Пользователь
 
Аватар для MoBLer
 
Регистрация: 30.12.2010
Сообщений: 91
По умолчанию

я не математик но вроде можно так
180+угол
и еще можно координаты мыши *(-1) получится симметрическая кочка
Я тебе помог, добавь отзыв)))))
Статьи по программированию
MoBLer вне форума Ответить с цитированием
Старый 20.05.2011, 20:08   #3
fate
Форумчанин
 
Аватар для fate
 
Регистрация: 17.03.2009
Сообщений: 318
По умолчанию

насчет координат я пробовал, тогда изменяется длинна линии, а это незя
я угол нахожу по теореме косинусов относительно оси У на которой лежит шарик, угол у меня может быть максимум 180 когда курсор переходит за ось У угол уменьшается от 180 до 0, поэтому прибавив 180 не пойдет
fate вне форума Ответить с цитированием
Старый 20.05.2011, 22:42   #4
MoBLer
Пользователь
 
Аватар для MoBLer
 
Регистрация: 30.12.2010
Сообщений: 91
По умолчанию

Я не уверен что это верно но все же напишу

каждая точка имеит своои координаты
D-ее координаты надо найти. потом *(-1).
точка С- курсор, OD-радиус(длина линии)
придется находить длину между точками OD,OB,CB (в нете есть формулы).
нам нужно найти смещение от центра по x,y.
Треугольники подобны. OD/OA=OC/OB OA=OD*OB/OC=y
OD/DA=OC/CB DA=OA*CB/OC=x
Координаты точки В (y= y точке О ,x = х точке С)
Потом к координатам точки О добовляем x,y которые нашли=D
Учитываем особенности программирования.
Возможно все что я написал выше не правильно.(в голову че то стукнула геометрия, лутше бы на уроке стукала)
Изображения
Тип файла: bmp 1.bmp (40.3 Кб, 144 просмотров)
Я тебе помог, добавь отзыв)))))
Статьи по программированию
MoBLer вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Графика в TurboPascal: Процедуры, рисующие на экране смешанный лес (лес состоит из елей) по курсору GreenDay Помощь студентам 2 04.05.2011 13:31
Рисование линии поверх формы и лейблов Abbath1349 Общие вопросы .NET 0 30.03.2011 07:04
Двойное рисование линии на канве gs199 C++ Builder 1 17.05.2010 01:34
Рисование линии Cpluser Общие вопросы .NET 8 17.05.2010 00:43
Рисование линии Cpluser Общие вопросы .NET 4 21.04.2010 00:15