Ich habe ein geometrisches Muster - sagen wir ein Kreuz:
Was ich mit etwas Überlappung und Kachel wiederholen möchte… einfach:
Das blaue Quadrat markiert die Einheitskachel 100 × 100 px.
Hier kommt jedoch der Haken: Ich möchte das Bild um etwa 30 ° drehen und dann kacheln. Dies hat sich als überraschend schwierig erwiesen. Das Drehen des Bildes ist natürlich einfach - aber das Finden einer senkrechten Einheitskachel (der blaue Block im obigen Bild) ist nicht:
Es ist klar, dass die 100 × 100-Einheitskachel sie nicht schneidet. Wie wähle ich die richtige Einheitskachel aus? Die Position spielt vermutlich keine Rolle, nur die Größe ist wichtig, aber ich weiß nicht, wie ich das berechnen soll. Intuitiv erwarte ich, dass der Drehwinkel und das Punktprodukt stark beeinflusst werden, aber das ist so weit wie ich 1 habe . Was noch schlimmer ist, die Drehung für beliebige Winkel ist aufgrund der inhärenten Diskretion von Pixeln nicht genau. Selbst wenn ich die mathematisch korrekte Größe berechne, führt dies nicht unbedingt zu einer nahtlosen Kachel.
Wie kann ich also eine optimale Winkel / Größen-Kombination berechnen, wenn die Größe der senkrechten Einheitszelle (hier 100 × 100) und der ungefähre gewünschte Winkel gegeben sind?
1 Mein Gedanke war, dass wir (unter Verwendung der Wikipedia-Notation), da die Projektion von A auf B so lang wie B sein soll, | B | = | A | · cos we und damit | A | = | B | / cosϑ haben . Was in meinem Fall die neue Länge | A | = 115.470 ergeben würde, aber ein einfacher Versuch zeigt, dass dies bei weitem nicht richtig sein kann, außer dass eine hässliche nichtintegrale Zahl erhalten wird. Wenn wir uns nur das oben gedrehte Bild ansehen, können wir sehen, dass das gesamte 200 × 400-Bild keine sich wiederholende senkrechte Einheit enthält.