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

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

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

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

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

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

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


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

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

5   голосов , оценка 3.8 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы