Программа по отрисовке графа:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using Tao.OpenGl;
using Tao.FreeGlut;
using Tao.Platform.Windows;
namespace WindowsFormsApp1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
AnT.InitializeContexts();
}
private void Form1_Load(object sender, EventArgs e)
{
Glut.glutInit();
Glut.glutInitDisplayMode(Glut.GLUT_RGBA | Glut.GLUT_DOUBLE);
Gl.glClearColor(0.0f, 0.0f, 0.0f, 1.0f);
Gl.glMatrixMode(Gl.GL_PROJECTION);
Gl.glLoadIdentity();
Glu.gluOrtho2D(-6.0, 6.0, -6.0, 6.0);
Gl.glMatrixMode(Gl.GL_MODELVIEW);
Gl.glLoadIdentity();
}
private void button1_Click(object sender, EventArgs e)
{
Gl.glClear(Gl.GL_COLOR_BUFFER_BIT);
Gl.glLineWidth(3.0f);
// ребра графа
Gl.glBegin(Gl.GL_LINES);
Gl.glColor3f(1.0f, 0.0f, 1.0f);
Gl.glVertex2d(-4.0, -4.0);
Gl.glVertex2d(-2.0, 2.0);
Gl.glVertex2d(1.0, 6.0);
Gl.glEnd();
Gl.glBegin(Gl.GL_LINES);
Gl.glColor3f(1.0f, 0.0f, 1.0f);
Gl.glVertex2d(-4.0, -4.0);
Gl.glVertex2d(-2.0, 2.0);
Gl.glVertex2d(1.0, 6.0);
Gl.glEnd();
Gl.glBegin(Gl.GL_LINES);
Gl.glColor3f(1.0f, 0.0f, 1.0f);
Gl.glVertex2d(-2.0, 2.0);
Gl.glVertex2d(0.0, -4.0);
Gl.glEnd();
Gl.glBegin(Gl.GL_LINES);
Gl.glColor3f(1.0f, 0.0f, 1.0f);
Gl.glVertex2d(-3.0, -1.0);
Gl.glVertex2d(-1.0, -1.0);
Gl.glEnd();
Gl.glBegin(Gl.GL_LINES);
Gl.glColor3f(1.0f, 0.0f, 1.0f);
Gl.glVertex2d(-4.0, -4.0);
Gl.glVertex2d(0.0, -4.0);
Gl.glEnd();
Gl.glBegin(Gl.GL_LINES);
Gl.glColor3f(1.0f, 0.0f, 1.0f);
Gl.glVertex2d(0.0, -4.0);
Gl.glVertex2d(0.0, 2.0);
Gl.glEnd();
Gl.glBegin(Gl.GL_LINES);
Gl.glColor3f(1.0f, 0.0f, 1.0f);
Gl.glVertex2d(-2.0, 2.0);
Gl.glVertex2d(0.0, 2.0);
Gl.glEnd();
Gl.glBegin(Gl.GL_LINES);
Gl.glColor3f(1.0f, 0.0f, 1.0f);
Gl.glVertex2d(0.0, 2.0);
Gl.glVertex2d(2.5, 2.0);
Gl.glEnd();
Gl.glBegin(Gl.GL_LINES);
Gl.glColor3f(1.0f, 0.0f, 1.0f);
Gl.glVertex2d(0.0, -4.0);
Gl.glVertex2d(2.5, 2.0);
Gl.glEnd();
Gl.glColor3f(0.0f, 0.0f, 1.0f);
Gl.glPointSize(10.0f);
// вершины графа
Gl.glBegin(Gl.GL_POINTS);
Gl.glVertex2d(-4.0, -4.0);
Gl.glVertex2d(-3.0, -1.0);
Gl.glVertex2d(-2.0, 2.0);
Gl.glVertex2d(-1.0, -1.0);
Gl.glVertex2d(0.0, -4.0);
Gl.glVertex2d(0.0, 2.0);
Gl.glVertex2d(2.5, 2.0);
Gl.glEnd();
AnT.Invalidate();
}
}
}
Не могу понять, как нарисовать стрелки (должны быть GL_LINES) так, чтобы их линии составляли с ребрами одинаковый угол.