hi Tom,
Tom hat geschrieben: ↑Do, 13. Dez 2018 9:11
Und es sieht auch noch scheiße aus.
das Verzerrungen mit GDI nicht gut aussehen war mir schon klar.
wenn man nun viele solche GDI Befehle in kleinen Schritten ausführt erhält man eine Animation ...
ich habe in Richtung GDI weiter gesucht aber das Trapez Problem ist wohl nicht neu ... auch andere hatten die Idee
mit GDIplus würde es wohl gehen aber das wäre in DOT Net
dann hab ich was gelesen was zwar (extrem) langsam ist aber im Prinzip funktioniert : jeden Pixel lesen / setzen
Code: Alles auswählen
FOR nY := 1 TO nYSize
FOR nX := 1 TO nXSize
nPixel := GetPixel(nHDC2,nX-1,nY-1)
xPos := nX + ( ??? )
SetPixelV(nHDC2,xPos,nY,nPixel)
NEXT
NEXT
da ein Trapez entstehen soll ist also die X-Position beim setzen "anders" als im Original.
ein Beispiel das ich gefunden habe hatte diese "Formel"
Code: Alles auswählen
for y:=0 to Hoehe do
for x:=0 to Breite do
begin
links:=dxOben-Round(Faktor1*y);
Faktor2:=(Breite-2*links)/Breite;
Farbe:=Image1.Canvas.Pixels[links+Round(x*Faktor2),y];
Image2.Canvas.Pixels[x,y]:=Farbe;
end;
- GetSet_Pixel.jpg (208.88 KiB) 11277 mal betrachtet
das ist aber nicht die Optik die ich haben möchte ... unabhängig von der Qualität.
wer kann mir bei der "Formel" weiter helfen, Danke
anbei Source