Поиск:

Ответ в темуСоздание новой темы Создание опроса
> рисование фигур 
:(
    Опции темы
xTr1m
Дата 27.6.2006, 16:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 692
Регистрация: 9.2.2005
Где: Москва

Репутация: нет
Всего: 1



Вот про полигоны я все понял, а если нужно рисовать более сложные фигуры? Например:

     *********
    *              *
   *              *
   *              *
    *               *
      *********

Имеются ввиду плавные линии. Я, конечно, догадываюсь, что нужно использовать синусы и косинусы, но хотелось бы почитать чего-нибудь перед тем, как садиться писать такое 
PM MAIL WWW ICQ   Вверх
Dart
Дата 27.6.2006, 16:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 103
Регистрация: 26.6.2006
Где: Саратов, РФ

Репутация: 2
Всего: 2



Цитата(xTr1m @  27.6.2006,  16:03 Найти цитируемый пост)
Я, конечно, догадываюсь, что нужно использовать синусы и косинусы, но хотелось бы почитать чего-нибудь перед тем, как садиться писать такое 

А толку-то читать?
CDC::MoveTo и CDC::LineTo - если тебе нужны нестандартные функции, русовать их придётся только так 
--------------------
ЦитатаЛюблю смотреть, как другие работают
 Дж. К. ДжеромСайт: www.ecosigma.ruПочта: [email protected] 
PM MAIL WWW ICQ   Вверх
xTr1m
Дата 27.6.2006, 16:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 692
Регистрация: 9.2.2005
Где: Москва

Репутация: нет
Всего: 1



ну ведь плавные кривые в графиках рисуют через sin cos. Так и тут можно, наверное, как-нибудь. или нет? 
PM MAIL WWW ICQ   Вверх
HappyLife
Дата 27.6.2006, 16:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 642
Регистрация: 17.5.2006

Репутация: нет
Всего: 8



Конечно главное центр определи правильно и все.  
Если что-то хочешь почитать, то книжку по Геометрии школьный курс, быть может поможет. 
PM MAIL   Вверх
Earnest
Дата 28.6.2006, 16:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5962
Регистрация: 17.6.2005
Где: Рязань

Репутация: 87
Всего: 183



Цитата(xTr1m @  27.6.2006,  17:26 Найти цитируемый пост)
ну ведь плавные кривые в графиках рисуют через sin cos. 

Вовсе нет. Плавные кривые, если они не дуги и не Безье, аппроксимируют ломаной с нужной точностью, а потом рисуют как обычно, отрезками.
 


--------------------
...
PM   Вверх
Dart
Дата 28.6.2006, 17:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 103
Регистрация: 26.6.2006
Где: Саратов, РФ

Репутация: 2
Всего: 2



Здесь xTr1m, ты и прав, и не прав одновременно.
Конечно, идеальное исполнение было бы отрисовкой функции и если особливо тебе надо менять масштаб изображения, это единственный правильный способ. Но экран-то имеет вполне конкретную разрешающую способность: 800:600, 1024:768 и т.д.
Поэтому, если хочешь, чтобы наиболее правильно отображалось, необходимо делать так:
1. Узнаем разрешающую способность экрана.
2. Масштабируем нашу функцию и вычисляем шаг, с которым надо выполнять итерации
3. В цикле for с вычисленным шагом считаем значение функции.
4. А вот теперь делаем LineTo от предыдущего значения (естессно, сначала MoveTo в первой итерации)

В совокупности это даст тебе наиболее правильную картинку.
Но рисовать все равно LineTo, ИМХО нет другого способа 
--------------------
ЦитатаЛюблю смотреть, как другие работают
 Дж. К. ДжеромСайт: www.ecosigma.ruПочта: [email protected] 
PM MAIL WWW ICQ   Вверх
maxim1000
Дата 28.6.2006, 17:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 3334
Регистрация: 11.1.2003
Где: Киев

Репутация: 1
Всего: 110



Цитата(Dart @  28.6.2006,  16:29 Найти цитируемый пост)
Но рисовать все равно LineTo, ИМХО нет другого способа

тут зависит от того, насколько разнообразные фигуры используются
если фигуры могут бытьпредставлены любыми линиями, то, действительно, кроме LineTo ничего в голову не приходит
если достаточно прямых отрезков и дуг эллипса, то можно посмотреть в MSDN информацию о regions и paths 


--------------------
qqq
PM WWW   Вверх
xTr1m
Дата 29.6.2006, 08:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 692
Регистрация: 9.2.2005
Где: Москва

Репутация: нет
Всего: 1



Всем спасибо, буду работать в этом направлении  smile  
PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Visual C++/MFC/WTL | Следующая тема »


 




[ Время генерации скрипта: 0.0657 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.