コロナによって計算された中心は、ポリゴンのバウンディング ボックスの中心です。
ポリゴンのすべてのポイントが次のように保存されたテーブルがあるとします。
local polygon = {x1,y1,x2,y2,...,xn,yn}
1)元のポイントの境界ボックスを見つけるには、すべてのポイントをループします。最小の x 値と最小の y 値は、左上の点の座標を示します。最大の x と y の値は右下のポイントです。
local minX = -math.huge
local minY = -math.huge
local maxX = math.huge
local maxY = math.huge
for i=1, #polygon, 2 do
local px = polygon[i]
local py = polygon[i+1]
if px > maxX then maxX = px end
if py > maxY then maxY = py end
if px < minX then minX = py end
if py < minY then minY = py end
end
2) このバウンディング ボックスの中心を見つけます。
local centerX = (maxX - minX)/2
local centerY = (maxY - minY)/2
3) 中心点を左上の点に追加します
local offsetX = centerX + minX
local offsetY = centerY + minY
4) このオフセットをコロナ ポリゴンに追加して、元のポリゴンと同じ位置に配置します。
テストしていないボットが動作するはずです。お知らせ下さい。