4

リングに「曲げる」必要のある長方形があります。つまり、長方形の上端をリングの外側の円にマップし、下端を内側の円にマップし、長方形の側面を結合する必要があります。

これは、長方形とリングの非常に大まかなスケッチです。 ここに画像の説明を入力してください

役立つか必要な場合は、長方形を水平線の集合として扱い、リングを円の集合として扱うことができます。

長方形にはaからbまでの水平方向のグラデーションがあり、グラデーションが円の方向に進むようにマップする必要があります。

これは非線形変換であることがわかりますが、この問題を解決するための手法を学ぶためにどこを見ればよいかについては迷っています。CGの適切な経験を持っている人は、私の指輪を作るための適切なテキスト、アルゴリズムの適切な名前、または適切なグラフィックライブラリのようなものを私に教えてもらえますか?

4

1 に答える 1

6

極座標を使用してみてください。xをrとして、yをθとしてマップする場合(θが0から2πまで実行されるときに正規化)、rにオフセットを追加するとリングの半径が変化し、θにオフセットを追加すると円の周りを回転します。

r = fx + a
g = (max_y - min_y)/(2*pi)
theta = gy + b

ここで、aとbはこれらのオフセットであり、fはリングの幅をスケーリングし、gは長方形の長さを2πに正規化します。これらの極座標からデカルト座標(つまり画面)への変換は次のとおりです。

x' = r cos(theta)
y' = r sin(theta)

次に、3つの座標系があります。元の長方形の場合は(x、y)、リングの極座標の場合は(r、θ)、画面座標の場合は(x'、y')です。

于 2012-05-21T14:03:10.017 に答える