0

描画関数に各円の中心点と x、y を指定する 2 つの円を描画する必要があります。

最初の円は静的で、同じ x と y になります。2 番目の円は小さく、マウスの位置に従いますが、中心点は最初の円の外には出ません。

この変数があることを考慮して: Circle1.x、Circle1.y、Circle.radius Mouse.x、Mouse.y

circle2 の x と y を取得するにはどうすればよいですか?

ここに私が必要なものを示すための選択があります: 写真 黒: Circle1 赤: Circle2 緑: マウス

4

1 に答える 1

0

マウスの位置から円の中心を引きます。これにより、円の中心からマウスの位置を指すベクトル (dx,dy) が得られます。このベクトルの長さは、円の半径以下である必要があります。長さが円の半径よりも小さい場合: マウスの位置は円内にあり、同じままです。長さが円の半径よりも大きい場合: ベクトルを正規化し、半径を掛けて、結果のベクトルを追加します。円の中心に移動すると、新しい位置になります。

疑似コード:

dx = Mouse.x-Circle1.x
dy = Mouse.y-Circle1.y

length = sqrt(dx*dx+dy*dy)

if (length > Circle.radius)
  ratio = Circle1.radius/length
  Circle2.x = Circle1.x + dx*ratio
  Circle2.y = Circle1.y + dy*ratio
else
  Circle2.x = Mouse.x
  Circle2.y = Mouse.y
end
于 2013-09-10T08:45:21.250 に答える