Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Флейм (http://www.flasher.ru/forum/forumdisplay.php?f=53)
-   -   помогите придумать общий алгоритм (http://www.flasher.ru/forum/showthread.php?t=125945)

iflamberg 05.06.2009 17:29

помогите придумать общий алгоритм
 
есть на плоскости несколько прямоугольников(x,y,width,height). Имеется еще один прямоугольник заданных размеров (width,height). Нужно разместить этот прямоугольник так, чтобы он касался(именно касался) как можно больше других прямоугольников.

undefined 05.06.2009 19:23

первое что пришло в голову:
построить охватывающий прямоугольник, замерить сумму длин сторон которые касаются каждой стороны охватывающего прямоугольника, выбрать из 4-ех сторон охватывающего пр-ка две где касаний больше, исходный прямоугольник располагать так, чтоб он касался 2-ух выбранных сторон у охватывающего.

wvxvw 05.06.2009 20:17

прямоугольники могут пересекаться?

iflamberg 05.06.2009 20:46

2undefined:
если я правильно понял, то в твоем варианте будет не касание, а именно охватывание.

2wvxvw: прямоугольники на плоскости не могут пересекаться. НОвый прямоугольник должен касаться стороной. Хм... хочешь предложить считать в "дырках" максимально большой прямоугольник, занимающий пустое пространство?

kruasan 05.06.2009 21:51

хотелось бы уточнить, чего должно быть "как можно больше"?

1. Как можно больше прямоугольников, которых касается новый прямоугольник.
ИЛИ
2. Наибольшая область касания. Т.е. наибольшая суммарная длина всех отрезков, в точках которых просходит касание.

?

iflamberg 05.06.2009 22:08

Как можно больше прямоугольников, которых касается новый прямоугольник.

Собственно это компьютерная игра-стратегия. На карте юниты, AI должен определить куда нанести арт-обстрел, чтобы ранить как можно больше.


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

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