Bir çözgü sadece bir "tek noktada" ama çok yumuşak bir şekilde deforme bazı alana değildir.
Bunu başarmak için, temas noktasının bazı mahallelerinde çalışan koordinatların geometrik bir dönüşümü gerekir. Bunu yapmanın bir yolu, resmin üzerine bir kare ızgara uygulamak ve bazı düğümleri ile birlikte dokunmuş noktaların etrafındaki ızgara düğümlerini hareket ettirmek (örneğin, tüm düğümlere bir yer değiştirme vektörü uygulamak, böylece çok uzak düğümler gibi bir bozucu etken) Hareket et.
Ardından, her pikselin yeni koordinatlarını hesaplayan ve kaynak pikselinin rengini kopyalayan bir yeniden örnekleme işlevine ihtiyacınız vardır.
İyi sonuçlar elde etmek için aslında tersine işlem yapmalısınız: hedef resmi tara ve her piksel için kaynak koordinatlarını ve kaynak piksellerini al. Takma adlarından kaçınmak için bilineik veya bicubic yeniden örnekleme uygulayın.
Uygulama kolaylığı için, kılavuzlama fikri de uyarlanmalıdır: hedef ızgarayı deforme etmekten ziyade, değiştirilmemeli ve tersine deformasyonu kaynak ızgaraya uygulamalısınız.
Son şey: ızgara yaklaşımında, ayrı ayrı ele alabileceğiniz iki skaler fonksiyon DX (i, j) ve DY (i, j) olarak ızgara düğümlerinin yer değiştirmelerine bakın. Düğümlerdeki deplasmanların bilgisinden, herhangi bir pikselin enterpolasyonla yer değiştirmesini tahmin edebilirsiniz (burada bicubic uygun olacaktır).
Onun: https://stackoverflow.com/questions/9237924/how-to-warp-images-in-android –
buna bakın: [nasıl çözgü görüntü] (https://stackoverflow.com/questions/9237924/how -to-warp-görüntüleri-in-android) –
ile yapılan istisnalar kadar çalışır, warp durumlarını kaydetme yararlıdır. –