![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 21.10.2009
Сообщений: 15
|
![]()
не могу не как сделать кленовый кто в курсе или уже сталкивался с этой проблемой помогите вот описание задачи и я прилепляю исходный код
В качестве изображения предлагается фрактальное изображение листа папоротника. Изображение формируется из MaxIteration пикселей. Ширина получаемого изображения в два раза меньше заданной высоты. А) Структурный тип, описывающий характеристики изображения: struct FERN { int x,y; // координаты лев. верх. угла изобр. (характеристика - местоположение) int h; // высота листа (характеристика - размер) COLORREF color; // цвет линии (характеристика - цвет изображения) }; Б) Псевдокод, предназначенный для модификации и использования в качестве функции для отрисовки изображения. Контекст отображения передается через параметр hDC, а характеристики изображения - при помощи структуры, содержащей значения этих характеристик: void fern(HDC hDC,struct FERN frn) // функция вывода листа папоротника { long MaxIteration=frn.h*100l; // число итераций static double x0=0,y0=0,xx,yy, x,y; // таблица коэффициентов для данного фрактального изображения double a[4]={ 0.00, 0.85, 0.20,-0.15}; double b[4]={ 0.00, 0.04,-0.26, 0.28}; double c[4]={ 0.00,-0.04, 0.23, 0.26}; double d[4]={ 0.16, 0.85, 0.22, 0.24}; double e[4]={ 0.00, 0.00, 0.00, 0.00}; double f[4]={ 0.00, 1.60, 1.60, 0.44}; for(int i=0; i<MaxIteration; i++) // рисуем очередной пиксел (0<=i<MaxIteration) { // определение координат int k=rand()%100+1; if(k<=1) k=0; else if(k>1&&k<=86) k=1; else if(k>86&&k<=93) k=2; else if(k>93&&k<=100) k=3; xx=a[k]*x0+b[k]*y0+e[k]; yy=c[k]*x0+d[k]*y0+f[k]; x0=xx; y0=yy; x= frn.x+(int)(x0*frn.h/11+frn.h/4); y= frn.y+(int)(y0*(-frn.h)/11+ frn.h); // вывод очередного пиксела (функция SetPixel) … нарисовать цветом frn.color пиксел с координатами (x, y) } } В) В оконной функции главного окна приложения объявить статическую переменную frn типа struct FERN для хранения значений характеристик изображения. Значения характеристик будут случайным образом задаваться при получении сообщения WM_PAINT. Г) При обработке сообщения WM_PAINT присвоить значения характеристикам изображения случайные значения (функция rand) и отрисовать его полностью: получить контекст отображения; получить размер рабочей области окна (функция GetClientRect); присвоить : frn.h - случайное значение в диапазоне от 20 до разности высоты окна и 20; frn.x - случайное значение в диапазоне от 0 до разности ширины окна и frn.h/2; frn.у - случайное значение в диапазоне от 0 до разности высоты окна и frn.h; frn.color - случайное значение цвета: RGB(rand()%255,rand()%255,rand()%25 5); вызывать функцию fern, передав контекст отображения и структуру с характеристиками; освободить контекст отображения. Д) Создать исполняемый модуль и проверить его работу. Для проверки правильности работы приложения необходимо, например, после запуска приложения сначала минимизировать его главное окно, а затем опять восстановить размер окна. Изображение дожно появиться в другом месте окна и иметь новые значения характеристик. |
![]() |
![]() |
![]() |
#2 |
Brainsbreaker
Пользователь
Регистрация: 07.02.2011
Сообщений: 26
|
![]()
Ну где ж это кленовый лист, скорей папоротник.
|
![]() |
![]() |
![]() |
#3 |
Старожил
Регистрация: 13.08.2009
Сообщений: 2,581
|
![]()
Забыл добавить волшебное слово: выполнять, с**и!
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
|
![]() |
![]() |
![]() |
#4 |
Новичок
Джуниор
Регистрация: 11.03.2011
Сообщений: 1
|
![]()
Если нужно могу выложить готовый код)
|
![]() |
![]() |
![]() |
#5 |
Brainsbreaker
Пользователь
Регистрация: 07.02.2011
Сообщений: 26
|
![]()
Тю, конечно нужно, вылаживай.
|
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Копирование строк таблицы по условию одной ячейки из Лист 1 в Лист 2 | Людвиг | Microsoft Office Excel | 5 | 25.10.2014 11:46 |
WinAPI for me | Kazimir | Фриланс | 4 | 14.12.2009 14:36 |
Рисование в WinApi | nazavrik | Win Api | 13 | 30.08.2009 23:54 |
Рисование на форме созданной на WinApi | N!ckeL | Win Api | 3 | 30.04.2008 19:02 |