also, ich habe folgendes Bild ( das Programm soll dan später mit ähnlichen bildern arbeiten die unterschiedlich gedreht sind):
dieses bild möchte ich nun "drehen"
da mir die ganzen Lösungen die es zum thema drehen giebt zu aufgebauscht waren hab ich mir da selber was überlegt.
und zwar teile ich das Bild in 2 Hälften. 4 Funktionen erledigen das "drehen".
links hoch, rechts runter und
links runter, rechts hoch
damit das ganze passt (normalerweise würde man ja mit einem festen Wert die ganze Seite des bildes verschieben) hab ich mir ne nette kleine mathematische Formel gebastelt:
z1=z- (x2*tan(z/x1))
mit den ganzen variablen sieht dass dann so aus:
das ist die Funktion für die linke Seite, für rechts:
und hir die ganze Funktion (für das Verschieben nach oben der linken Seite):
Mein Problem ist nun im Grenzwert dieser Funktion, die Stelle wo die Pixel eigentlich nicht mehr verschoben werden dürften weil der z wert zu klein ist.
In der Mitte ensteht nämlich so etwas:
Der weiße "strich" wird größer je mehr pixel sich in diesem Grenzbereich aufhalten.
Dieser "strich" stört in der weiteren Verarbeitung ungemein.
Darum die frage: warum? und wie krieg ich diesen Strich weg?
(und ja, mir ist bewusst dass die buchstaben je nach anfangswinkel sehr schräg werden können. Das hab ich aber schon durchdacht, die lösung ist nur irrelevant für mein Problem.)
dieses bild möchte ich nun "drehen"
da mir die ganzen Lösungen die es zum thema drehen giebt zu aufgebauscht waren hab ich mir da selber was überlegt.
und zwar teile ich das Bild in 2 Hälften. 4 Funktionen erledigen das "drehen".
links hoch, rechts runter und
links runter, rechts hoch
damit das ganze passt (normalerweise würde man ja mit einem festen Wert die ganze Seite des bildes verschieben) hab ich mir ne nette kleine mathematische Formel gebastelt:
z1=z- (x2*tan(z/x1))
mit den ganzen variablen sieht dass dann so aus:
das ist die Funktion für die linke Seite, für rechts:
und hir die ganze Funktion (für das Verschieben nach oben der linken Seite):
Quellcode
- Public Sub upleft(straight As Integer)
- Dim bm As Bitmap
- GetObject Picture1.Image, Len(bm), bm
- z = 0
- For y = 0 To bm.bmHeight - 1
- For x = (bm.bmWidth / 2) - 1 To left1 Step -1
- If ImageData(0, x, y) = 255 And ImageData(1, x, y) = 255 And ImageData(2, x, y) = 255 Then
- SetPixel Picture1.hDC, x, y, 0
- SetPixel Picture1.hDC, x, y - z, RGB(ImageData(0, x, y), ImageData(1, x, y), ImageData(2, x, y))
- End If
- z = straight - ((x - 1) * Tan(straight / 101))
- Next
- z = straight
- Next
- End Sub
Mein Problem ist nun im Grenzwert dieser Funktion, die Stelle wo die Pixel eigentlich nicht mehr verschoben werden dürften weil der z wert zu klein ist.
In der Mitte ensteht nämlich so etwas:
Der weiße "strich" wird größer je mehr pixel sich in diesem Grenzbereich aufhalten.
Dieser "strich" stört in der weiteren Verarbeitung ungemein.
Darum die frage: warum? und wie krieg ich diesen Strich weg?
(und ja, mir ist bewusst dass die buchstaben je nach anfangswinkel sehr schräg werden können. Das hab ich aber schon durchdacht, die lösung ist nur irrelevant für mein Problem.)