4

角が丸い三角形を作ろうとしています。三角形は次のようになります。

ここに画像の説明を入力

左下のコーナーは、90 度の「ターン」であるため、簡単に作成できる唯一のコーナーです。そのターンはQ、次のパラメーターを指定して SVG のコマンドを使用して行われます。

Q x,y + height, x, y + height - RADIUS私が作成している円弧の右側から始めます。

ただし、三角形のサイズに応じて、他のコーナーは可変です。関数を使用して角度を計算できますが、atan()それらを実装する方法がわかりません。RADIUS 変数 (この場合は 5) に従うようにしたいと思います。

何か案は?

4

2 に答える 2

1

コマンドを使用すると、特定のとを使用しaて非常に詳細なコーナーを作成できます。私は次のように関数を呼び出します:rXrY

a 5 5 0 0 1 0 5 5となり、半径 5 の円と と が作成されdX = 5ますdY = 5。これは完璧です。

半径は 90 度が理想的なので、50 度の角がある場合(50 / 90) * RADIUSは、値に使用するだけで完璧です。

于 2013-07-15T20:15:31.330 に答える
1

これは、辺が基本軸に平行な直角三角形にのみ必要だと思います。これにより、作業が少し簡単になります。

あなたが言ったように、直角は簡単です。

他の角度については、円の中心を計算する必要があります。wとしましょうh三角形の幅と高さです。x, yまた、 が一番右のノードの座標であるとしましょう。右端の三角形の中心は:x - r * h / w, y - rです。描く必要のある弧がカバーする角度は ですπ - α。ここαで、 は で計算したコーナー角度ですatan

一番上のコーナーも同様に処理されます。

これで始められるはずです。

于 2013-07-15T17:13:37.317 に答える