2012-02-23 1 views
0

У меня есть два прямоугольник:Вычислить центральную точку прямоугольника в гибких

вара rect1: Прямоугольник = новый прямоугольник (66,147,89,67);

var rect2: Rectangle = new Rectangle (155,147,89,67);

Как рассчитать центральную точку этих прямоугольников на основе их положений x и y. Я хочу, чтобы центральная точка была рассчитана по отношению к этапу

ответ

1

В глобальном плане. Сначала вам нужно найти минимальные и максимальные точки ваших фигур в этом случае прямоугольников. Чем вам нужно использовать min.x + (max.x-min.x)/2 и min.y + (max.y-min.y)/2

вот код, как это сделать.

var rects:Array={rectangle1,rectangle2} 
var min:Point=new Point(Number.MAX_VALUE,NUMBER.MAX_VALUE) 
var max:Point=new Point(Number.MIN_VALUE,NUMBER.MIN_VALUE) 
foreach(var rect:rectangle in rects) 
{ 
    min.x=Math.min(min.x,rect.left); 
    min.y=Math.min(min.y,rect.top); 
    max.x=Math.max(max.x,rect.right); 
    max.y=Math.max(max.y,rect.bottom); 
} 

вар центр: Point = новая точка (min.x + (max.x-min.x) /2,min.y+ (max.y-min.y)/2) если ваши прямоугольники в другом контейнере, а не на этапе , вы можете позвонить по телефону contaner.localToGLobal (в центре), результатом будет точка, которая находится в позиции относительно этапа

+0

Спасибо. Оно работает – Srivi

0

Решение прост - сначала определите границы третьего прямоугольника, который охватывает оба прямоугольника и вычисляет центр этого прямоугольника.

var left:Number = rect1.x < rect2.x ? rect1.x : rect2.x; 
var right:Number = rect1.x + rect1.width > rect2.x + rect2.width ? rect1.x + rect1.width - left : rect2.x + rect2.width - left; 
var top:Number = rect1.y < rect2.y ? rect1.y : rect2.y; 
var bottom:Number = rect1.y + rect1.height > rect2.y + rect2.height ? rect1.y + rect1.height - top : rect2.y + rect2.height - top; 

var centerX:Number = left + 0.5 * right; 
var centerY:Number = top + 0.5 * bottom; 
+0

Я не получаю вас. Я хочу знать центральную точку обоих прямоугольников – Srivi

+0

'centerX' и' centerY' - координаты центральной точки обоих прямоугольников. – package