Курсовая работа (т): Создание 3D-модели лабиринта с вертикальными стенами

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

void Draw(int snow_x[], int snow_y[], int snow_z[], int n, int min_y, int max_y)

{

/* если Y вне [min_y; max_y], то не отрисовываем снежинку;

это нужно, чтобы не рисовать те снежинки, которые заведомо выше нашего обзора */

for(int i = 0; i < n; i++)(snow_y[i] >= min_y && snow_y[i] <= max_y)f(snow_x[i], snow_y[i], snow_z[i]);

}

/* имитация падения снежинок */Fall(int snow_y[], int n, int min_y, int max_y)

{(int i = 0; i < n; i++)

{_y[i]-=15; /* уменьшаем высоту снежинки */

/* если снежинка "достигла земли", то она опять начинает падать с "неба" - когда их много, пользователь не увидит такой детали */

if(snow_y[i] <= min_y) snow_y[i] = max_y;

}

}

Коллекция генерируется в функции окна приложения при получении сообщения WM_CREATE и сообщения от пункта меню, включающего эффект снегопада. Падение имитируется с тиками таймера (сообщение WM_TIMER).

Для отрисовки «снежинок» в обработчике сообщения WM_PAINT предусмотрен следующий фрагмент кода:

glColor3f(1, 1, 1);(2);(GL_POINTS);(snow_x, snow_y, snow_z, nSnow, -200, 400);

glEnd();

Источник: https://www.bibliofond.ru/detail.aspx?id=775122