2016-09-25 10 views
1

.csvファイルの緯度/経度座標を使用して都市の地図を表示しようとしています。 Processingを使用して画面に表示するには、これらの値をxyの値に変換する必要があります。私の先生は私にこのコードを教えてくれましたが、私の座標については、出力されたマップは90度回転しています。ピクセルに変換された回転緯度、長い座標

// 1. normalize the value between the minimum and maximum latitude or longitude values (new value between 0 and 1) 
// 2. blow up the value between 0 and 1 by muliplying by the width or height of the screen (reduced by the margin 2 * 20 pixel) 
// 3. shift the position by 20 pixel for the margin 
float xPosition = 20 + (width-40) * norm(l.longitude, minLongCoord, maxLongCoord); 
float yPosition = 20 + (height-40) * norm(l.latitude, minLatCoord, maxLatCoord); 

誰でもxy位置を90度と順番に座標から出力されたマップを回転させる方法を知っていますか?

編集:マウスのクリックされた機能をマウスでクリックすると、マウスの上にどのような形状が整列していないかを確認できます。

答えて

0

rotate()関数を呼び出すことができます。 the referenceから:あなたも周りに回転させるポイントを設定するtranslate()関数を呼び出す必要があり

translate(width/2, height/2); 
rotate(PI/3.0); 
rect(-26, -26, 52, 52); 

rotated square

注、その時点に比べて描画します。

rotate()機能を使用しない場合は、最初にどのポイントを回転させてからそのポイントを中心に回転させる必要があります。グーグル "別のポイントの周りのポイントを回転"このスタックオーバーフローポストを含む結果の束を返します:Rotating a point about another point (2D)

+0

私はそれを試みましたが、マップは小さな形の束で構成されているということです。私はbeginShape()を使用しています。つまり、個々の図形は回転し、マップ全体は回転しません。 – OptOut

+0

@OptOut各図形をその中心の周りに回転させることができます。または、私が言及した第2のアプローチを使用することができます。また、['PShape#rotate()'](https://processing.org/reference/PShape_rotate_.html)関数を呼び出すこともできます。 –

+0

@OptOut beginShape()は、この命令の後のすべての変換がendShape()でリセットされるため、直前に回転を置くことができます。 – Alex

関連する問題