Нарисовать сферу на форме в пространстве имен System.Drawing и System.Drawing.Drawing2D - C#

Узнай цену своей работы

Формулировка задачи:

Задача нарисовать сферу на форме в пространстве имен System.Drawing и System.Drawing.Drawing2D. С возможностью вращения в плоскостях, и возможностью закрашивания. начал с того что начал писать каркасное изображение сферы:
 private void Form1_Paint(object sender, PaintEventArgs e)
        {
            int R = 200;//радиус
            int k = 20; //некий коэффициент
            int X, Y;
            for (int B = -90; B <= 90; B += 20) // широта от -90 до 90
                for (int L = -180; L <= 180; L += 20)//долгота от 0 до 360, или от -180 до 180
                  {
                    int x = (int)(R * Math.Cos(B) * Math.Sin(L));
                    int y = (int)(R * Math.Cos(B) * Math.Cos(L));
                    int z = (int)(R *Math.Cos(B));
далее задача преобразовать координаты {x, y, z} в координаты на плоскость {X, Y} пытаюсь так
  X = (x / ((z / k) + 1)) +(int)(Width / 2);
                   Y = (y / ((z / k) + 1)) +(int)(Height / 2);
и дале рисование отрезка до точки {X, Y}то есть соединяем между собой соседние точки а получившиеся грани из 4-ч точек закрашиваем прекрасно понимаю что нарисовать в OpenGL или DirectX просто и легко, но вся фишка задать математически и ручками, китайский код писать не хочется прописывая просто множество DrawEllipse меняя координаты сам вопрос как нарисовать эти самые отрезки, или как это всё собрать в некий массив

Решение задачи: «Нарисовать сферу на форме в пространстве имен System.Drawing и System.Drawing.Drawing2D»

textual
Листинг программы
        private void Form1_Paint(object sender, PaintEventArgs e)
        {
            using (BufferedGraphics buffG = BufferedGraphicsManager.Current.Allocate(e.Graphics, e.ClipRectangle))            
            {
                //используй buffG.Graphics вместо e.Graphics
                buffG.Render(); 
            }
        }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

5   голосов , оценка 3.8 из 5
Похожие ответы