Bitte beachten Sie, dass dies eine Lernübung für mich ist, daher verwende ich keine Bibliotheken von Drittanbietern oder Matrix-Transformationen, die in .NET bereitgestellt werden. Das unten enthaltene Beispiel zeigt einen Würfel auf einem Formular an und ermöglicht eine Rotation mit der Maus. Dies funktioniert einwandfrei, und ich versuche nun, das Zooming basierend auf dem Bildlauf des Mausrads zu implementieren. Wenn Sie beim Scrollen des Mausrads genau hinschauen, ändert sich es ein wenig. < /P>
float CubeSize = 200; // Fixed.
float CameraDistance = 400; // Changes with mouse wheel.
// In the FormCube_MouseWheel event:
this.CameraDistance -= e.Delta * 0.1f; // Zoom sensitivity.
this.CameraDistance = Math.Max(100, Math.Min(1000, this.CameraDistance)); // Clamp
// In the OnPaint event:
var scale = this.CameraDistance / (this.CameraDistance + z2);
Ich weiß, dass ich im Moment noch keine Projektionen, Matrizen usw. verstanden habe. Ich möchte von dort nur nur mit grundlegenden Formeln experimentieren und bauen. möglich): < /p>
Bitte beachten Sie, dass dies eine Lernübung für mich ist, daher verwende ich keine Bibliotheken von Drittanbietern oder Matrix-Transformationen, die in .NET bereitgestellt werden. Das unten enthaltene Beispiel zeigt einen Würfel auf einem Formular an und ermöglicht eine Rotation mit der Maus. Dies funktioniert einwandfrei, und ich versuche nun, das Zooming basierend auf dem Bildlauf des Mausrads zu implementieren. Wenn Sie beim Scrollen des Mausrads genau hinschauen, ändert sich es ein wenig. < /P> [code]float CubeSize = 200; // Fixed. float CameraDistance = 400; // Changes with mouse wheel.
// In the FormCube_MouseWheel event: this.CameraDistance -= e.Delta * 0.1f; // Zoom sensitivity. this.CameraDistance = Math.Max(100, Math.Min(1000, this.CameraDistance)); // Clamp
// In the OnPaint event: var scale = this.CameraDistance / (this.CameraDistance + z2); [/code] Ich weiß, dass ich im Moment noch keine Projektionen, Matrizen usw. verstanden habe. [url=viewtopic.php?t=14917]Ich möchte[/url] von dort nur nur mit grundlegenden Formeln experimentieren und bauen. möglich): < /p> [code]using System; using System.Drawing; using System.Windows.Forms;
namespace GeometricVisualizer { internal static class Program { [STAThread] private static void Main() => Application.Run(new FormCube()); }
public struct Point3D { public float X, Y, Z; public Point3D(float x, float y, float z) { this.X = x; this.Y = y; this.Z = z; } }
public partial class FormCube: Form { private Point MousePositionLast; private bool MouseStateIsDragging; private float CameraAngleX = 0, CameraAngleY = 0, CubeSize = 200, CameraDistance = 400;
private int EdgesDimensionLength0 = 12; private int [,] Edges = new int [,] { {0, 1}, {1, 2}, {2, 3}, {3, 0}, {4, 5}, {5, 6}, {6, 7}, {7, 4}, {0, 4}, {1, 5}, {2, 6}, {3, 7}, };
Ich könnte Hilfe bei einem Animationsproblem verwenden. Ich versuche, die Animationen auf dieser Website neu zu erstellen: Insbesondere möchte ich die schwimmenden Felsen und Elemente sowie den...
ein .ThenInclude(...) . Dieses Mal muss ich jedoch mehrere verschiedene Gruppen von Entitäten abrufen, die in 1: 1 oder 1: N -Beziehungen innerhalb jeder Gruppe liegen. Das Projekt selbst ist in...
Ich habe den folgenden (über vereinbaren) Code, der einen gewerkschaftlichen zwischen zwei Tabellen unter Verwendung von Kriterien -API durchführt und eine Projektion abruft, die durch projectiondto...
Ich benutze die Flugblatt, um eine Karte anzuzeigen, und ich wollte Markierungen darauf platzieren. Ich wollte die Markierungen mit Informationen platzieren, die ich von einem API -Anruf von Geonames...