Ich arbeite am 2D ​​-Rendering in Avalonia C#C#

Ein Treffpunkt für C#-Programmierer
Anonymous
 Ich arbeite am 2D ​​-Rendering in Avalonia C#

Post by Anonymous »

Ich arbeite am 2D ​​-Rendering in Avalonia und habe Zeilen, Kreise und andere Entitäten mit dem DrawingContext in der Render -Override -Methode des Steuerelements gezogen. Ich verwende die Matrixklasse für Skalierung und y-Achse-Übersetzung. Bei der Anwendung der Matrix funktioniert die Auswahl jedoch nicht korrekt, da die Punkte nicht übereinstimmen. < /P>

Code: Select all

    public override void Render (DrawingContext context) {
base.Render (context);

// 2D Render Matrix
this.renderMatrix = _2DView.GetMatrix ();

// Draw Scene
using (context.PushTransform (this.renderMatrix)) {
if (this.Entity == null) return;
foreach (var entity in this.Entity!) {
defPen = entity.IsSelected ? new (Brushes.Red, 2) : new (Brushes.White, 1);
EntityDrawerVM.DrawEntity (context, entity, this.renderMatrix, defPen);
}
}

}

Convert screentoworldpoint:
private Avalonia.Point ScreenToWorld (Avalonia.Point p) {
return new Avalonia.Point (
(p.X * this.renderMatrix.M11) + (p.Y * this.renderMatrix.M21) + this.renderMatrix.M31,
(p.X * this.renderMatrix.M12) + (p.Y * this.renderMatrix.M22) + this.renderMatrix.M32);
}

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post