Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   как найти окружность описанную вокруг других окружностей? (http://www.flasher.ru/forum/showthread.php?t=128467)

DEAFFF 09.08.2009 14:02

как найти окружность описанную вокруг других окружностей?
 
Привет! есть несколько окружностей/сфер , как найти окружность/сферу описанную вокруг этих окружностей/сфер?

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

Есть идеи господа?

Добавлено через 33 минуты
первый метод:

Код AS3:

for each(circle in circles)
{
        _x += circle.x;
        _y += circle.y;
}
 
_x /= circles.length;
_y /= circles.length;
 
for each(circle in circles)
{
        var dx:Number = circle.x - _x;
        var dy:Number = circle.y - _y;
 
        var tempRadius:Number = Math.sqrt(dx * dx + dy * dy) + circle.radius;
        _radius = Math.max(_radius, tempRadius);
}

второй метод:

Код AS3:

var maxX:Number = -Number.MAX_VALUE;
var minX:Number = Number.MAX_VALUE;
 
var maxY:Number = -Number.MAX_VALUE;
var minY:Number = Number.MAX_VALUE;
 
for each(circle in circles)
{
        maxX = Math.max(maxX, circle.x + circle.radius);
        minX = Math.min(minX, circle.x - circle.radius);
 
        maxY = Math.max(maxY, circle.y + circle.radius);
        minY = Math.min(minY, circle.y - circle.radius);
}
 
_x = minX + 0.5*(maxX - minX);
_y = minY + 0.5*(maxY - minY);
 
for each(circle in circles)
{
        var dx:Number = circle.x - _x;
        var dy:Number = circle.y - _y;
 
        var tempRadius:Number = Math.sqrt(dx * dx + dy * dy) + circle.radius;
        _radius = Math.max(_radius, tempRadius);
}


какие есть идеи еще?

gloomyBrain 09.08.2009 15:54

Второй метод, однозначно лучший
Не вижу смысла еще над чем-то думать

wvxvw 09.08.2009 17:19

Центр центров окружностей не будет центром окружности описаной вокруг них, ну, в смысле только если все окружности одинакового диаметра - то тогда да.

DEAFFF 09.08.2009 20:06

да, думаю второй метод лучше, окружность меньше чем в первом, а чем меньше тем лечше


Часовой пояс GMT +4, время: 13:12.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.