Форум программистов, компьютерный форум, киберфорум
Наши страницы
C# Windows Forms
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
Tenass
7 / 7 / 1
Регистрация: 21.03.2010
Сообщений: 398
1

Нарисовать параболоид вращения четвертого порядка

15.10.2015, 16:49. Просмотров 964. Ответов 1
Метки нет (Все метки)

Собственно такая задача и стоит - нарисовать параболоид вращения четвертого порядка. Нашел сайт на котором уроки отрисовки фигур в opengl. Только вот загвоздка, есть формулы описания, но не могу понять какие именно из них нужно взять и запрограммировать. Может кто поможет. На изображении предоставлены эти формулы. Спасибо заранее кто откликнется.
0
Миниатюры
Нарисовать параболоид вращения четвертого порядка  
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.10.2015, 16:49
Ответы с готовыми решениями:

Аппроксимировать параболоид выпуклым многогранником
Здравствуйте! есть задание: аппроксимировать параболоид выпуклым...

Дан параболоид вращения и круглый цилиндр
помогите пожалуйста решить одну из следующих задач: Дан параболоид вращения...

Диффур четвертого порядка
y''''-16y=x*e^x+2sin2x-3cos2x Как решать данный диффур ? Заранее спасибо !

Уравнение четвертого порядка
подскажите пожалуйста. каким методом решать это уравнение! ...

Уравнение четвертого порядка
8. Решить методами Эйлера и Рунге – Кутты четвертого порядка на отрезке с...

1
Storm23
Эксперт .NETАвтор FAQ
6450 / 3876 / 1436
Регистрация: 11.01.2015
Сообщений: 5,033
Записей в блоге: 32
15.10.2015, 20:03 2
Лучший ответ Сообщение было отмечено Tenass как решение

Решение

Цитата Сообщение от Tenass Посмотреть сообщение
нарисовать параболоид вращения четвертого порядка
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
using System;
using System.Drawing;
using System.Windows.Forms;
 
namespace WindowsFormsApplication318
{
    public partial class LineMover : Form
    {
        private TrackBar tbRotate;
 
        public LineMover()
        {
            InitializeComponent();
 
            SetStyle(ControlStyles.AllPaintingInWmPaint | ControlStyles.OptimizedDoubleBuffer | ControlStyles.UserPaint, true);
 
            tbRotate = new TrackBar {Parent = this, Maximum = 90};
            tbRotate.ValueChanged += delegate { Invalidate(); };
 
            ResizeEnd += delegate { Invalidate(); };
            Size = new Size(400, 500);
        }
 
        protected override void OnPaint(PaintEventArgs e)
        {
            base.OnPaint(e);
 
            e.Graphics.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality;
            e.Graphics.ScaleTransform(1, -1);
            e.Graphics.TranslateTransform(Width/2, -Height + 120);
 
            var to = 70;
            var stepR = 2f;
            var stepA = 0.3f;
            var rotate = (Math.PI / 2) * tbRotate.Value / 90;
            var cosR = (float)Math.Cos(rotate);
            var sinR = (float)Math.Sin(rotate);
 
            for (float r = 0; r <= to; r+= stepR)
            for (float a = 0; a < 2 * Math.PI; a+= stepA)
            {
                //считаем точки параболоида
                var p = CalcPoint(r, a);
                var p1 = CalcPoint(r - stepR, a);
                var p2 = CalcPoint(r, a - stepA);
 
                //поворочиваем точки согласно углу проекции
                p = Rotate(p, cosR, sinR);
                p1 = Rotate(p1, cosR, sinR);
                p2 = Rotate(p2, cosR, sinR);
 
                //отрисовываем
                e.Graphics.DrawLine(Pens.Black, p.X, p.Y, p1.X, p1.Y);
                e.Graphics.DrawLine(Pens.Black, p.X, p.Y, p2.X, p2.Y);
 
            }
        }
 
        Point3 Rotate(Point3 p, float cosR, float sinR)
        {
            return new Point3() {X = p.X, Y = p.Y*cosR + p.Z*sinR, Z = -p.Y*sinR + p.Z*cosR};
        }
 
        Point3 CalcPoint(float r, float a)
        {
            var c = 100000f;
            var z = r * r * r * r / c;
            var x = r * Math.Cos(a);
            var y = r * Math.Sin(a);
 
            return new Point3() { X = (float)x, Y = (float)y, Z = z };
        }
    }
 
    public class Point3
    {
        public float X;
        public float Y;
        public float Z;
    }
}
Нарисовать параболоид вращения четвертого порядка
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.10.2015, 20:03

Вычислить определитель четвертого порядка
Ребят нужна помощь! а то это на зачёт нести, я не знаю как делать! Болел в то...

Найти значения полинома четвертого порядка
здравствуйте помогите дополнять программу Текст программа: Program Lab9;...

Метод Рунге-Кутта четвертого порядка
Доброго времени суток. Задание по выч. мату. координаты х рассчитываются просто...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru