2017-01-10 9 views
-5

処理中のアプリケーションをhereで作成していて、問題が発生して戻ってこなかった。私はそれを終わらせたいので、今すぐに来ました。私がプログラムを拡大しようとすると、画像を正確に拡大することができません。私は、画像がゆがんでしまうのを防ぐために、均等にスケールする必要があります。私はこれにどのようにアプローチすべきですか?処理中のアプリケーションのスケーリングとアスペクト比の維持

画像は、パズルのようにきれいにまとまっているため、均等に拡大縮小する必要があります。

私のコードの描画:

PImage a = "a.png"; 
PImage b = "b.png"; 
PImage c = "c.png"; 
PImage d = "d.png";  


image(a,0,0); 
image(b,0,height); 
image(c,width,0); 
image(d,height,width); 


//distorded 
image(a,0,0,100,100); 

を画像Aは、それがあったように、今の長方形ではなく、今、部分的に色で塗りつぶされている正方形です。

ひずんだ画像は、最初は矩形です。画像の一部は透明で残りは着色されています。だからスケールを変えようとすると歪みが生じる。

One image

前に私はちょうど image(a,0,0,scaleX,scaleY);を使用しようとしましたが、それは、画像を歪めます。私はアスペクト比を変更しないためにイメージが必要です。それは以前の見た目ですが、それよりも大きめです。私はこれを働かせるように見えない。さまざまなデバイスサイズのスケーリングが行われるため、同じアスペクト比で動的に調整する必要があります。


歪みの例。

Distorted

+1

([最小限の、完全な、検証可能な例]を含めてくださいhttp://stackoverflow.com/help/mcve)だけでなく、オフサイトにリンクすることができます。 – EJoshuaS

+0

@EJoshuaS私は1つを追加しました。私はMCVEでちょっと新しいですよね。もっと教えてください。 – Christopher

+0

まず、あなたのコードがどのようにして画像を「歪め」ますか、「均等」として何を定義しますか?次に質問ごとに1つの質問をする必要があります。この質問では、まず画像を「均等に」縮尺する方法を尋ねてきた後、回転して画面の回転を防ぐ方法を尋ねます。それは広すぎます。 –

答えて

0

あなたはあなただけではなく、具体的なxよりも割合を使用して相対的な位置を使用することができ、画像を描画した場合、現在のグラフィックスを簡単に処理createShape() vertex() endShape()

を使用して描画される可能性があるため、あなたは、より複雑な画像を追加することを計画していますyは各頂点に対応します。これにより、screenHeightとscreenWidthの値に拡大縮小することができます。

これを行う手助けをしたいならば、バンパーシェイプを生成するクラスをコーディングするのに役立ち、それぞれのinsanceに対して再利用できます。

私はscreenOrientationロックを追加するために、あなたのレポへのプルリクエストを作成し、あなただけのAndroidManifest.xml

完全なマニュアルにandroid:screenOrientation="portrait"を追加しますが:https://developer.android.com/guide/topics/manifest/activity-element.html#screen

関連する問題