Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 12.12.2012, 17:22   #1
alex(21)
Форумчанин
 
Аватар для alex(21)
 
Регистрация: 09.06.2009
Сообщений: 545
По умолчанию C#. построить изображение тора

Постройте изображение тора, используя в качестве основных примитивов треугольники с общими гранями. получился цилиндр, а как нарисовать тор? что изменить в коде?
Код:
private void glControl1_Paint(object sender, PaintEventArgs e)
        {

            // очистка буферов цвета и глубины
            GL.Clear(ClearBufferMask.ColorBufferBit | ClearBufferMask.DepthBufferBit);

            // поворот изображения
            GL.LoadIdentity();
            GL.Rotate(AngleX, 1.0, 0.0, 0.0);
            GL.Rotate(AngleY, 0.0, 1.0, 0.0);
            GL.Rotate(AngleZ, 0.0, 0.0, 1.0);

            // оси координат
            GL.Begin(BeginMode.Lines);
            // ось x
            GL.Color3(1f, 1, 1); GL.Vertex2(-6, 0);
            GL.Color3(0f, 0, 1); GL.Vertex2(6, 0);
            // ось y
            GL.Color3(1f, 1, 1); GL.Vertex2(0, -6);
            GL.Color3(0f, 1, 0); GL.Vertex2(0, 6);
            // ось z
            GL.Color3(1f, 1, 1); GL.Vertex3(0, 0, -6);
            GL.Color3(1f, 0, 0); GL.Vertex3(0, 0, 6);
            GL.End();
            //...//


            GL.Color3(1f, 0, 0);

            // формирование изображения
            GL.PolygonMode(MaterialFace.FrontAndBack, mode);
            GL.Begin(BeginMode.QuadStrip);
            double r = 0.5;
            int n = 20;
            for (int i = 0; i <= n; ++i)
            {
                double a = 2 * Math.PI/n * i;
                double x = r * Math.Cos(a);
                double y = r * Math.Sin(a);
                GL.Vertex3(x, y, -0.5);
                GL.Vertex3(x, y, 0.5);
            }
            GL.End();
            // завершение формирования изображения

            GL.Flush();
            GL.Finish();

            glControl1.SwapBuffers();
        }
alex(21) вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Построить изображение прямого цилиндра и его образующих(с++) Соня555 Помощь студентам 3 03.04.2012 20:05
Изображение whitebrain Общие вопросы .NET 1 09.03.2011 19:37
построить изображение http://upwap.ru/912478 чёрные квадраты соответствуют высвечиваемым точкам mt92 Помощь студентам 0 15.06.2010 11:04
Изображение Terran Работа с сетью в Delphi 2 08.02.2008 22:28