PDA

Просмотр полной версии : [Вопрос] Математический вопрос



Item
28.10.2016, 18:24
Зная координаты центральной точки, нужно найти координаты X1, X2, Y1, Y2
https://pp.vk.me/c836233/v836233979/8526/pHDp4p38Lc0.jpg

Osetin
28.10.2016, 19:00
Скриншот загрузите на другой фотохостинг, ссылка не работает

SliM
28.10.2016, 19:42
ну к примеру: Х=200 У=400 Z=просто есть

X1-5, Х2+5, У1-10, У2+10 это = 195, 205, 390, 410 разве ни так все просто?

Daniel_Cortez
28.10.2016, 19:54
/*======================================
y2 *---------------*
| |
height | cy * |
| cx |
y1 *---------------*
x1 width x2
======================================*/
GetRectEdgesCoordsFromCenter(
Float:cx, Float:cy, Float:width, Float:height,
&Float:x1, &Float:y1, &Float:x2, &Float:y2)
{
static Float:width_div_2, Float:height_div_2;
width_div_2 = floatdiv(width, 2.0);
height_div_2 = floatdiv(height, 2.0);
x1 = cx - width_div_2, x2 = cx + width_div_2;
y1 = cy - height_div_2, y2 = cy + height_div_2;
return 1;
}

Item
28.10.2016, 20:22
/*======================================
y2 *---------------*
| |
height | cy * |
| cx |
y1 *---------------*
x1 width x2
======================================*/
GetRectEdgesCoordsFromCenter(
Float:cx, Float:cy, Float:width, Float:height,
&Float:x1, &Float:y1, &Float:x2, &Float:y2)
{
static Float:width_div_2, Float:height_div_2;
width_div_2 = floatdiv(width, 2.0);
height_div_2 = floatdiv(height, 2.0);
x1 = cx - width_div_2, x2 = cx + width_div_2;
y1 = cy - height_div_2, y2 = cy + height_div_2;
return 1;
}


Возможно ли как-то учесть угол?
http://i.imgur.com/rjuZcwY.png

Item
29.10.2016, 19:58
___up

Nexius_Tailer
30.10.2016, 17:04
За основу взята GetXYInFrontOfPlayer, пробуй


GetXYInFrontOfCenter(Float:cX, Float:cY, Float:width, Float:height, Float:angle, &Float:minX, &Float:minY, &Float:maxX, &Float:maxY)
{
minX = cX - ((width / 2.0) * floatsin(-angle, degrees));
minY = cY - ((height / 2.0) * floatcos(-angle, degrees));
maxX = cX + ((width / 2.0) * floatsin(-angle, degrees));
maxY = cY + ((height / 2.0) * floatcos(-angle, degrees));
}