2009-02-26 4 views
0

Ich habe einige C++/GDI Zeichnungscode, der den isotropischen Mapping-Modus verwendet. Ich habe ein großes Objektmodell mit viel Zeichenkode, das ich in einem C# -Projekt wiederverwenden möchte, um es auf eine im Speicher befindliche Bitmap zu zeichnen. Ich habe Probleme, das System.Graphics-Objekt richtig einzurichten, um das gleiche Bild zu erzeugen. Gibt es eine Möglichkeit, das Äquivalent des MM_ISOTROPIC-Zuordnungsmodus in einem System.Graphics-Objekt einzurichten?Entsprechung von MM_ISOTROPIC Mapping-Modus in Gdi +

Hier ist der relevante Code von C++/GDI, der den Mapping-Modus vorbereitet.

CDC* pDC = ... 
pDC->SetMapMode(MM_ISOTROPIC); 
pDC->SetWindowExt(24, 24); 
pDC->SetViewportExt(pDC->GetDeviceCaps(LOGPIXELSX), pDC->GetDeviceCaps(LOGPIXELSY)); 

Antwort

0

Es gibt nichts besonderes über MM_ISOTROPIC, es macht Sie sicher, dass die X- und Y-Skalierung identisch ist, auch wenn Sie es widersprüchliche Werte mit SetViewportExt geben() und SetWindowExt(). Was du nicht tust. Ich glaube nicht, dass es Hardware gibt, die keine quadratischen Pixel hat.

Anyhoo, stellen Sie sicher, dass Sie gleiche Werte an Graphics.ScaleTransform() übergeben.

+1

Wann gab es Hardware ohne quadratische Pixel? – bobobobo

+2

Als sie rechteckig waren. –