![]() |
|
![]() ![]() ![]() |
|
xTr1m |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 692 Регистрация: 9.2.2005 Где: Москва Репутация: нет Всего: 1 |
Вот про полигоны я все понял, а если нужно рисовать более сложные фигуры? Например:
********* * * * * * * * * ********* Имеются ввиду плавные линии. Я, конечно, догадываюсь, что нужно использовать синусы и косинусы, но хотелось бы почитать чего-нибудь перед тем, как садиться писать такое |
|||
|
||||
Dart |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 103 Регистрация: 26.6.2006 Где: Саратов, РФ Репутация: 2 Всего: 2 |
А толку-то читать? CDC::MoveTo и CDC::LineTo - если тебе нужны нестандартные функции, русовать их придётся только так --------------------
ЦитатаЛюблю смотреть, как другие работают Дж. К. ДжеромСайт: www.ecosigma.ruПочта: [email protected] |
|||
|
||||
xTr1m |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 692 Регистрация: 9.2.2005 Где: Москва Репутация: нет Всего: 1 |
ну ведь плавные кривые в графиках рисуют через sin cos. Так и тут можно, наверное, как-нибудь. или нет?
|
|||
|
||||
HappyLife |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 642 Регистрация: 17.5.2006 Репутация: нет Всего: 8 |
Конечно главное центр определи правильно и все.
Если что-то хочешь почитать, то книжку по Геометрии школьный курс, быть может поможет. |
|||
|
||||
Earnest |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 87 Всего: 183 |
Вовсе нет. Плавные кривые, если они не дуги и не Безье, аппроксимируют ломаной с нужной точностью, а потом рисуют как обычно, отрезками. -------------------- ... |
|||
|
||||
Dart |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 103 Регистрация: 26.6.2006 Где: Саратов, РФ Репутация: 2 Всего: 2 |
Здесь xTr1m, ты и прав, и не прав одновременно.
Конечно, идеальное исполнение было бы отрисовкой функции и если особливо тебе надо менять масштаб изображения, это единственный правильный способ. Но экран-то имеет вполне конкретную разрешающую способность: 800:600, 1024:768 и т.д. Поэтому, если хочешь, чтобы наиболее правильно отображалось, необходимо делать так: 1. Узнаем разрешающую способность экрана. 2. Масштабируем нашу функцию и вычисляем шаг, с которым надо выполнять итерации 3. В цикле for с вычисленным шагом считаем значение функции. 4. А вот теперь делаем LineTo от предыдущего значения (естессно, сначала MoveTo в первой итерации) В совокупности это даст тебе наиболее правильную картинку. Но рисовать все равно LineTo, ИМХО нет другого способа --------------------
ЦитатаЛюблю смотреть, как другие работают Дж. К. ДжеромСайт: www.ecosigma.ruПочта: [email protected] |
|||
|
||||
maxim1000 |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3334 Регистрация: 11.1.2003 Где: Киев Репутация: 1 Всего: 110 |
тут зависит от того, насколько разнообразные фигуры используются если фигуры могут бытьпредставлены любыми линиями, то, действительно, кроме LineTo ничего в голову не приходит если достаточно прямых отрезков и дуг эллипса, то можно посмотреть в MSDN информацию о regions и paths -------------------- qqq |
|||
|
||||
xTr1m |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 692 Регистрация: 9.2.2005 Где: Москва Репутация: нет Всего: 1 |
Всем спасибо, буду работать в этом направлении
![]() |
|||
|
||||
![]() ![]() ![]() |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Visual C++/MFC/WTL | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |