![]() |
|
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]()
|
|
| S.A.G. |
|
|||
![]() не эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1339 Регистрация: 20.7.2006 Где: in ad equate Репутация: нет Всего: 19 |
В Дельфи есть метод канвы:
Строит часть эллипса или окружности(дугу), вписанной в прямоугольник с заданными координатами. Как отрисовать дугу, имея в распоряжении координаты начала, конца и "высоту" дуги (т.е. имееться ввиду отрезок заданой длины, проведенный под углом 90 из центра отрезка соединяющего эти две точки)? Т.е. фактически имеем три точки через которых нужно провести дугу.. Предполагаеться также изменять эту высоту. Какие возникают мысли? Это сообщение отредактировал(а) main - 7.3.2007, 00:29 -------------------- Вот она задачка: спасти себя от себя самого © Cube Sometimes good people do evil things © A Simple Plan |
|||
|
||||
| Sovereign |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 58 Регистрация: 7.11.2006 Репутация: 2 Всего: 4 |
Пусть у нас есть точки A,B это точки начала и конца, С - средина этого отрезка, CD - перпендикуляр, он же - высота дуги, мы можем найти угол CDB. Угол через чентр окружности AOB равен 360 - СDB *4, AOC его половине, таким образом из тр-ка AOC по стороне AC находим OC, отсюда и сами координаты центра, размеры прямоугольника (из них x1,y1,x2,y2), точки среза у нас есть (координаты A, B) -> x3,y3 x4,y4 ,вроде все, осталось только написать и проверить =), только это при условии что СD<AC
Это сообщение отредактировал(а) Sovereign - 7.3.2007, 04:31 Присоединённый файл ( Кол-во скачиваний: 29 )
123.gif 5,38 Kb |
|||
|
||||
| S.A.G. |
|
|||
![]() не эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1339 Регистрация: 20.7.2006 Где: in ad equate Репутация: нет Всего: 19 |
Толком не разбирал еще а уже предложили вариант.. спасибо. Тут так.. на глаз - речь идет вродебы о дугах окружностей? Arc вроде бы строит дуги конических сечений а в случае квадратов - дуги окружностей. Наверное метод по которому определили 3 точку и определил что дуга окружности.
Это сообщение отредактировал(а) main - 7.3.2007, 15:02 -------------------- Вот она задачка: спасти себя от себя самого © Cube Sometimes good people do evil things © A Simple Plan |
|||
|
||||
| Sovereign |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 58 Регистрация: 7.11.2006 Репутация: 2 Всего: 4 |
ага, для дуги элипса двух точек и высоты не хватит
|
|||
|
||||
| S.A.G. |
|
|||
![]() не эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1339 Регистрация: 20.7.2006 Где: in ad equate Репутация: нет Всего: 19 |
Думал насчет кривых Безье - там вообще все может быть просто. Но вот вопрос - если задать две точки в качестве начала и конца, а контрольные две совместить в одну - возможно так можно построить дугу окружности? Или сам этот метод на такое не расчитан? Я смотрел - вродебы дуги плавные.. но сам метод этот предполагает построение кривых отличных от дуг конических сечений.
-------------------- Вот она задачка: спасти себя от себя самого © Cube Sometimes good people do evil things © A Simple Plan |
|||
|
||||
| Sovereign |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 58 Регистрация: 7.11.2006 Репутация: 2 Всего: 4 |
впринципе выглядит где-то так, если в одну совместить, получишь небольшое место перегиба и прямые линии
Присоединённый файл ( Кол-во скачиваний: 23 )
124.gif 2,40 Kb |
|||
|
||||
| S.A.G. |
|
|||
![]() не эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1339 Регистрация: 20.7.2006 Где: in ad equate Репутация: нет Всего: 19 |
Чет непонял рисунок.. где там кривая Безье? и что это за концы?
-------------------- Вот она задачка: спасти себя от себя самого © Cube Sometimes good people do evil things © A Simple Plan |
|||
|
||||
| Sovereign |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 58 Регистрация: 7.11.2006 Репутация: 2 Всего: 4 |
красная дуга, синие - две направляющие(длина синих линий влияет на крутизну изгиба), не знаю то это или нет, могу ошибаться
Это сообщение отредактировал(а) Sovereign - 7.3.2007, 15:23 |
|||
|
||||
| MBo |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 234 Регистрация: 10.6.2002 Репутация: 3 Всего: 18 |
||||
|
||||
| S.A.G. |
|
|||
![]() не эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1339 Регистрация: 20.7.2006 Где: in ad equate Репутация: нет Всего: 19 |
Да вот только оказалось есть еще проблема. Оно то проведет дугу но оно ее проведет не только через рассчетные точки но гораздо дальше.. и что с этим куском делать? В Паскале и том функция получше была..
Это сообщение отредактировал(а) main - 7.3.2007, 21:13 -------------------- Вот она задачка: спасти себя от себя самого © Cube Sometimes good people do evil things © A Simple Plan |
|||
|
||||
![]()
|
| Правила форума "Delphi: Общие вопросы" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |