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

OPENGL. Как отредактировать форму,чтобы было видно фигуры с коорд больше 1

13.06.2019, 21:06. Просмотров 878. Ответов 1

грубо говоря должно получиться,то что на картинке,шестиугольник делается из двух наложенных друг на друга треугольников
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
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using SharpGL;
 
namespace SharpGLWinformsApplication1
{
    /// <summary>
    /// The main form class.
    /// </summary>
    public partial class SharpGLForm : Form
    {
        /// <summary>
        /// Initializes a new instance of the <see cref="SharpGLForm"/> class.
        /// </summary>
        public SharpGLForm()
        {
            InitializeComponent();
        }
 
        /// <summary>
        /// Handles the OpenGLDraw event of the openGLControl control.
        /// </summary>
        /// <param name="sender">The source of the event.</param>
        /// <param name="e">The <see cref="RenderEventArgs"/> instance containing the event data.</param>
        private void openGLControl_OpenGLDraw(object sender, RenderEventArgs e)
        {
            //  Get the OpenGL object.
            OpenGL gl = openGLControl.OpenGL;
 
            //  Clear the color and depth buffer.
            gl.Clear(OpenGL.GL_COLOR_BUFFER_BIT | OpenGL.GL_DEPTH_BUFFER_BIT);
 
            //  Load the identity matrix.
            gl.LoadIdentity();
 
            // Двигаем перо вглубь экрана
            gl.Translate(0.0f, 0.0f, 0.5f);
 
            gl.Begin(OpenGL.GL_TRIANGLES);
            gl.Color(0f,1f,1f);
            gl.Vertex(-1f, -1f);
            gl.Vertex(0f, 1f);
            gl.Vertex(1f, -1f); 
            gl.Vertex(-1f,0.5f); 
            gl.Vertex(1f,0.5f); 
            gl.Vertex(0f,-1.7f);       
            gl.End();
           
 
            gl.Begin(OpenGL.GL_LINES);
            gl.Color(1f,1f,1f);
            gl.Vertex(-1.5f,-1f); 
            gl.Vertex(-0.5f,1f);            
            gl.End();
            //  Draw a coloured pyramid.
            gl.Begin(OpenGL.GL_TRIANGLES);
            gl.Color(1f, 1f, 1f);
            gl.Vertex(-1f, -1f);
            gl.Vertex(0f, 1f);
            gl.Vertex(1f, -1f);
            gl.End();
 
           
        }
 
 
 
        /// <summary>
        /// Handles the OpenGLInitialized event of the openGLControl control.
        /// </summary>
        /// <param name="sender">The source of the event.</param>
        /// <param name="e">The <see cref="System.EventArgs"/> instance containing the event data.</param>
        private void openGLControl_OpenGLInitialized(object sender, EventArgs e)
        {
            //  TODO: Initialise OpenGL here.
 
            //  Get the OpenGL object.
            OpenGL gl = openGLControl.OpenGL;
 
            //  Set the clear color.
            gl.ClearColor(0, 0, 0, 0);
        }
 
        /// <summary>
        /// Handles the Resized event of the openGLControl control.
        /// </summary>
        /// <param name="sender">The source of the event.</param>
        /// <param name="e">The <see cref="System.EventArgs"/> instance containing the event data.</param>
        private void openGLControl_Resized(object sender, EventArgs e)
        {
            //  TODO: Set the projection matrix here.
 
            //  Get the OpenGL object.
            OpenGL gl = openGLControl.OpenGL;
 
            //  Set the projection matrix.
            gl.MatrixMode(OpenGL.GL_PROJECTION);
 
            //  Load the identity.
            gl.LoadIdentity();
 
           
        }
 
        /// <summary>
        /// The current rotation.
        /// </summary>
        private float rotation = 0.0f;
 
        private void openGLControl_Load(object sender, EventArgs e)
        {
 
        }
    }
}
0
Изображения
 
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.06.2019, 21:06
Ответы с готовыми решениями:

Как запустить оконное приложение из службы, чтобы оно было видно пользователю?
Добрый день. Подобная тема обсуждалась в интернете много раз, но я так и не смог найти на нее...

Console.ReadLine - чтобы не было видно вводимых символов
Всем добрый день. Если возможность в С# настроить как-то ввод с клавиатуры в консоли...

Добавление формы в форму, чтобы её можно было передвигать, как в Paint.net
Я уже видел код, как это делается, к сожалению не помню.. Там какое-то свойство во второй форме...

Как сделать 2 форму прозрачной чтобы было видно 1
вот такая проблема, и чтобы она не выходила за границы первой когда ее перемещаешь что посоветуете?

Добавить браузер на форму, чтобы не было видно адресной строки
здравствуйте, собственно сабж, как сделать? интересует на ВБ6, ВБА, спасибо

1
8Observer8
2770 / 1720 / 306
Регистрация: 05.10.2013
Сообщений: 5,296
Записей в блоге: 95
14.06.2019, 21:43 2
Лучший ответ Сообщение было отмечено Сашаааааааа как решение

Решение

Star_WinFormsOpenTkOpenGL11CSharp.zip

Form1.cs

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
using System;
using System.Windows.Forms;
using OpenTK;
using OpenTK.Graphics.OpenGL;
 
namespace Star
{
    public partial class Form1 : Form
    {
        GLControl _glControl;
 
        public Form1()
        {
            InitializeComponent();
 
            _glControl = new GLControl();
            _glControl.Width = 250;
            _glControl.Height = 250;
            _glControl.Load += GLControl_Load;
            _glControl.Paint += GLControl_Paint;
            Controls.Add(_glControl);
        }
 
        private void GLControl_Load(object sender, EventArgs e)
        {
            // Set a color for the background
            GL.ClearColor(0.1f, 0.3f, 0.2f, 1f);
        }
 
        private void GLControl_Paint(object sender, PaintEventArgs e)
        {
            // Set the viewport
            GL.Viewport(0, 0, _glControl.Width, _glControl.Height);
 
            // Clear the color buffer
            GL.Clear(ClearBufferMask.ColorBufferBit);
 
            double r = 0.7;
            double angle30InRad = MathHelper.DegreesToRadians(30.0);
            double vertexX = r * Math.Cos(angle30InRad);
            double vertexY = r * Math.Sin(angle30InRad);
 
            // Draw two triangle
            GL.Begin(PrimitiveType.Triangles);
            {
                GL.Color3(1f, 0.55f, 0f);
 
                // First triangle
                GL.Vertex2(0f, r);
                GL.Vertex2(-vertexX, -vertexY);
                GL.Vertex2(vertexX, -vertexY);
 
                // Second triangle
                GL.Vertex2(0f, -r);
                GL.Vertex2(vertexX, vertexY);
                GL.Vertex2(-vertexX, vertexY);
            }
            GL.End();
 
            // Swap the fron and back buffers
            _glControl.SwapBuffers();
        }
    }
}


Название: Star_WinFormsOpenTkOpenGL11CSharp.png
Просмотров: 13

Размер: 3.6 Кб
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.06.2019, 21:43

Как сделать прозрачность, чтобы сквозь PictureBox было видно видно другие объекты?
Я делаю несколько PictureBox с Gif-анимацией (Робот и снаряд). На заднем цвете стоит transperent,...

Как сделать, чтобы не было видно библиотек?
Добрый день, форум, как сделать чтобы при компиляции да и использовании готовой программки не нужно...

JTextField. Как сделать, чтобы было видно всю строку?
создаю апплет, делаю cp = this.getContentPane(); cp.setLayout(new FlowLayout());...


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

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

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