Exemple #1
0
            public void DrawLine(float dt, int steps, bool colored = false)
            {
                VertexHelper.Clear();
                VertexHelper.CurrentColor = Colors.LightGreen;

                for (int i = 0; i < steps; i++)
                {
                    var t = (colored) ? ((float)Math.Cos(_currentDt) + 1f) / 2f : 1;
                    VertexHelper.Put(_xs[0], _xs[1], Color.FromScRgb(1f, 0, t, 0));
                    _xs         = _cf.Runge(_xs, dt);
                    _currentDt += dt;
                }

                VertexHelper.Draw(PrimitiveType.Points);
            }
Exemple #2
0
        public void DrawLain(Vector3 start, float dt, int steps)
        {
            VertexHelper.Clear();
            VertexHelper.CurrentColor = Colors.Black;
            VertexHelper.Put(start);

            var xs = start.ToArray();

            for (int i = 1; i < steps; i++)
            {
                xs = Runge(xs, dt);
                VertexHelper.Put(xs[0], xs[1], xs[2]);
            }

            VertexHelper.Draw(PrimitiveType.LineStrip);
        }
Exemple #3
0
        private void DrawCircle(Vector2 center, float a1, float a2, float w1, float w2, float phi)
        {
            VertexHelper.Clear();
            var n = 400;

            var   dt = (float)(2 * Math.PI) / (w1 * (n - 1));
            float t  = 0;

            for (int i = 0; i < n; i++, t += dt)
            {
                var x = (float)Math.Sin(w1 * t) * a1 + center.X;
                var y = (float)Math.Cos(w2 * t - phi) * a2 + center.Y;
                VertexHelper.Put(x, y);
            }

            VertexHelper.Draw(PrimitiveType.LineLoop);
            Gl.LineWidth(6);
        }
Exemple #4
0
        public static void Draw(float a, float b, float c, bool gefuellt)
        {
            a *= 0.5f;
            b *= 0.5f;
            c *= 0.5f;
            var A = new Vector3(a, -b, c);           // Bodenpunkte
            var B = new Vector3(a, -b, -c);
            var C = new Vector3(-a, -b, -c);
            var D = new Vector3(-a, -b, c);
            var E = new Vector3(a, b, c);           // Deckpunkte
            var F = new Vector3(a, b, -c);
            var G = new Vector3(-a, b, -c);
            var H = new Vector3(-a, b, c);

            VertexHelper.Clear();
            if (gefuellt)
            {
                Viereck(D, C, B, A, e2);            // Boden
                Viereck(E, F, G, H, e2n);           // Deckflaeche
                Viereck(A, B, F, E, e1n);           // Seitenflaechen
                Viereck(B, C, G, F, e3);
                Viereck(D, H, G, C, e1);
                Viereck(A, E, H, D, e3n);

                VertexHelper.Draw(PrimitiveType.Triangles);
            }
            else
            {
                kante(A, B);                         // Boden
                kante(B, C);
                kante(C, D);
                kante(D, A);
                kante(E, F);                         // Decke
                kante(F, G);
                kante(G, H);
                kante(H, E);
                kante(A, E);                         // Kanten
                kante(B, F);
                kante(C, G);
                kante(D, H);

                VertexHelper.Draw(PrimitiveType.Lines);
            }
        }