Friday, July 18, 2008
AE / circleLineSegmentCollide
直線と正円の弧が交差した時に「true」を返します。
サンプルスタックでは、交差した時に円の色がグリーンに変わります。
基本構文
circleLineSegmentCollide(直線の1行目のポイント(X1,Y1), 直線の2行目のポイント(X2,Y2), \
正円のロケーション, 正円の半径)
circleLineSegmentCollide(line 1 of the points of grc "tLine",line 2 of the points of grc "tLine", \
the loc of grc "blueOval", grc "blueOval"の半径)
線のグラフィック「tLine」のポイントを求めると、
ラインの始めと終わりの、2行のポイントのロケーションが返されます。
put the points of grc “tLine”
パラメータ1 は。ラインの 1行目のポイント。パタメータ2 はラインの 2行目のポイント。
パラメータ3 は正円のロケーション。パラメータ4は正円の半径です。
-- 3つある円はすべて、マウスダウンで動かせるように以下を入れます
on mouseDown
grab me
end mouseDown
-- 小円の名前は、グラフィック「point1」と、グラフィック「point2」としています
-- ブルーの正円の名前は、グラフィック「blueOval」
-- カード内に入れるスクリプトは
on mouseMove
-- 白の小円が動かされた時、ラインのポイントが変わる
set the points of grc "tLine" to the loc of grc "point1" &","& the loc of grc "point2"
-- ラインのポイントの1行目は、グラフィック「point1」のロケーションに同じ
-- ラインのポイントの2行目は、グラフィック「point2」のロケーションに同じ
if circleLineSegmentCollide(the loc of grc "point1",the loc of grc "point2", \
the loc of grc "blueOval",30) then
-- true を返す
set the backgroundColor of grc "blueOval" to green
else
-- false を返す
set the backgroundColor of grc "blueOval" to blue
end if
end mouseMove
始めにAnimation Engineを開いて、start using stack "animationEngine"
サンプルスタックは、下記をメッセージボックスにコピペしてリターンキーを
go stack \
url "http://homepage.mac.com/kenjikojima/jrevnote/circleLineSegmentCollide.rev"