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); }
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); }
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); }
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); } }