Navigationslinks überspringen  

Dieses Beispiel

verwendet den drawPolyPolyLine Befehl. Einmal wird im Fillmodus gezeichnet das andere Mal (im Offset ) im Linemodus.
Die Daten werden aus einem Drawing3d.Font gelesen. Das Offsetpolygon wird mit GetOffset erzeugt. Das Offset kann mit der Trackbar eingestellt werden. MulMatrix(Matrix.Translation(-4, -4, 0)) führt eine Translation aus. Beachte, dass eine Matrixmultiplikation immer durch ein PushMatrix() und ein PopMatrix() neutralisiert werden sollte.
using System;
using System.Drawing;
using System.Windows.Forms;
using Drawing3d;

namespace Sample
{
    public partial class Form1 : Form
    {
        MyDevice Device = new MyDevice();
       
        public Form1()
        {
            InitializeComponent();
            Device.WinControl = this;
         }

        private void trackBar1_ValueChanged(object sender, EventArgs e)
        {
            Device.Offset = (double)trackBar1.Value / 50f;
        }
    }

    public class MyDevice:OpenGlDevice
    {
        internal double Offset = 0.1;
        Loxy G = null;
        Drawing3d.Font F = new Drawing3d.Font("Arial");
        protected override void OnCreated()
        {
            base.OnCreated();
            Loca L = F.GlyphInfo[(byte)'G'].Curves;
            G = L.ToLoxy();
            (G as ITransform2d).Transform(Matrix3x3.Scale(15, 15));
         }
       
        public override void OnPaint()
        {
            base.OnPaint();
            PushMatrix();
            MulMatrix(Matrix.Translation(-4, -4, 0));
            drawPolyPolyLine(G);
            Loxy GLo = G.GetOffset(Drawing3d.JoinType.jtRound, Drawing3d.EndType.etOpenRound, Offset + 0.1);
            Emission = Color.White;
            PolygonMode = Drawing3d.PolygonMode.Line;
            drawPolyPolyLine(GLo);
            Emission = Color.Black;
            PolygonMode = Drawing3d.PolygonMode.Fill;
            PopMatrix();
       }
       
        
    }
}
Copyright © Drawing3D inc