имея gangzone center и радиус необходимого прямоугольника возможно ли вычислить координаты минимума и максимума ?PHP код:
MinY
v
MinX > *-------------
| |
| gangzone |
| center |
| |
-------------* < MaxX
^
MaxY
если да, то по какой формуле ;)
Вид для печати
имея gangzone center и радиус необходимого прямоугольника возможно ли вычислить координаты минимума и максимума ?PHP код:
MinY
v
MinX > *-------------
| |
| gangzone |
| center |
| |
-------------* < MaxX
^
MaxY
если да, то по какой формуле ;)
прямоугольника наврятли, а квадрата вроде бы можно как то...
учитесь пользоваться всеми функциями стримера.PHP код:
new AreaID;
AreaID = CreateDynamicRectangle(minx,miny,maxx,maxy,-1,-1,-1);
IsPlayerInDynamicArea(playerid, AreaID);
Зная длину и ширину можно вычислить таким образом.PHP код:
/*
maxY
v a
maxX > *-------------
| |
| gangzone |
b | center |
| |
-------------* < minX
^
minY
*/
main()
{
new
Float: centerX = 0.0,
Float: centerY = 0.0 ;
new
Float: a = 50.0,
Float: b = 27.0 ;
new
Float: minX = centerX - ( a / 2 ),
Float: minY = centerY - ( b / 2 ),
Float: maxX = centerX + ( a / 2 ),
Float: maxY = centerY + ( b / 2 ) ;
printf( "(%f, %f)\n(%f, %f)", minX, minY, maxX, maxY );
}
a и b это длина и ширина
Элементарно же.
Вот готовая функция:
Ну и заодно обратна функция, которая узнаёт центр:PHP код:
GetBoundsOfGangZone(Float:cx, Float:cy, Float:width, Float:height, &Float:x1, &Float:y1, &Float:x2, &Float:y2)
{
x1 = cx - (width / 2.0);
x2 = cx + (width / 2.0);
y1 = cy - (height / 2.0);
y2 = cy + (height / 2.0);
}
PHP код:
GetCenterOfGangZone(Float:MinX, Float:MinY, Float:MaxX, Float:MaxY, &Float:X, &Float:Y)
{
X = (MinX + MaxX) / 2;
Y = (MinY + MaxY) / 2;
}
Всем спасибо, выручили.