Перемещение по траектории - Visavi.net
https://visavi.net/
RSS - Visavi.nethttps://visavi.net/assets/img/images/logo_small.pngRSS - Visavi.net
https://visavi.net/
[email protected] (admin)[email protected] (admin)Thu, 16 Jan 2025 01:02:37 +0300<pre class="prettyprint"> function distance ($a, $b)
{
if ($a['x'] < $b['x'])
{
$x = ($b['x'] - $a['x']);
} else {
$x = ($a['x'] - $b['x']);
}
if ($a['y'] < $b['y'])
{
$y = ($b['y'] - $a['y']);
} else {
$y = ($a['y'] - $b['y']);
}
return Array ('x' => $x, 'y' => $y);
}
function automoved ($id, $xy)
{
$array = nps ($id);
$rand = rand (1,4);
$array['x'] = (int)$array['x'];
$array['y'] = (int)$array['y'];
if ($rand == 1)
{
$moved = array (
'x' => ($array['x'] + 5), 'y' => ($array['y'])
);
} else if ($rand == 2) {
$moved = array (
'x' => ($array['x'] - 5), 'y' => ($array['y'])
);
} else if ($rand == 3) {
$moved = array (
'x' => ($array['x']), 'y' => ($array['y'] + 5)
);
} else if ($rand == 4) {
$moved = array (
'x' => ($array['x']), 'y' => ($array['y'] - 5)
);
}
$distance = distance (array ('x' => $array['x'],'y' => $array['y']), $xy);
$x = (int) $distance['x'];
$y = (int) $distance['y'];
$d = distance ($moved, $xy);
$nx = (int) $d['x'];
$ny = (int) $d['y'];
if ($nx < $x or $ny < $y)
{
return $moved;
} else {
return automoved ($id, $xy);
}
}</pre>
<br>
<em><span style="font-size:x-small">Добавлено через 02:18 сек.</span></em><br>
выше выложил две функции они и осуществляют передвижение объекта в 5px только с интервалом в 2сек. я беру новую позицию через Ajax и ресую его позицию на плоскости...
https://visavi.net/topics/14949/265252
Перемещение по траектории ВетальTue, 26 Oct 2010 20:38:54 +0400Сообщенияhttps://visavi.net/topics/14949/2652528, разве что rand(), будет интересно).
https://visavi.net/topics/14949/265247
Перемещение по траектории АлександрTue, 26 Oct 2010 20:21:51 +0400Сообщенияhttps://visavi.net/topics/14949/2652477. <strong>Муз-ТВ</strong>, читай выше я именно так и сделал пока не дадут более интересной идее... мне собственно и ненужно что б он именно по прямой дагонался. все равно спасибо!<br>
правда помоему уже более интересной и не дадут!?
https://visavi.net/topics/14949/265239
Перемещение по траектории ВетальTue, 26 Oct 2010 20:03:16 +0400Сообщенияhttps://visavi.net/topics/14949/265239$Diagx=$Ax-$Bx;<br>
$Diagy=$Ay-$By;<br>
<br>
if($Diagx!=0) перемещаемся на 5 по х<br>
если меньше 0 то на -5<br>
if($Diagy!=0) перемещаемся на 5 по y<br>
если меньше 0 то на -5<br>
<br>
чем так не нравится?, может не по ровной линии но дойдет до точки.
https://visavi.net/topics/14949/265141
Перемещение по траектории АлександрTue, 26 Oct 2010 15:38:19 +0400Сообщенияhttps://visavi.net/topics/14949/2651415. <strong>Муз-ТВ</strong>, блин мне нужен не процес перемещения тем более данные в который нужно вбивать самому, а вычисление кодом диагонали между двумя точками на плоскости и при каждом обновлении стр. что б один из элементов допустим "А" перемешался к элементу "Б" с шагом в 5px
https://visavi.net/topics/14949/265046
Перемещение по траектории ВетальTue, 26 Oct 2010 10:54:14 +0400Сообщенияhttps://visavi.net/topics/14949/265046Если правильно понял.<br>
Шарик движется, запомнили текущие координаты x,y. Через некоторые время запомнили x2,y2.<br>
<pre class="prettyprint"><?php
function shar($x,$y,$x2,$y2)
if($x==$x1 && $y==$y2) return 'не двигается';
if($x>$x1 && $y==$y2) return 'вправо';
if($x<$x1 && $y==$y2) return 'влево';
if($x==$x1 && $y>$y2) return 'вниз';
if($x==$x1 && $y<$y2) return 'вверх';
if($x<$x1 && $y<$y2) return 'по диагонали вправо вверх';
if($x>$x1 && $y>$y2) return 'по диагонали влево вниз';
if($x<$x1 && $y>$y2) return 'по диагонали влево вверх';
if($x>$x1 && $y<$y2) return 'по диагонали вправо вверх';
}
</pre>
https://visavi.net/topics/14949/265007
Перемещение по траектории АлександрTue, 26 Oct 2010 09:02:01 +0400Сообщенияhttps://visavi.net/topics/14949/265007пришла в голову одна идея возможно комуто понадобится...<br>
вобщем данный элемент сам выбирает в какую сторону ему переместится но перед тем как переместить его туда мы проверяем становится ли растояние между двумя координатами на любой из осей меньше если да то даем ему зеленный свет- если нет тогда действие выбора передвижение рекурсивно запускается до правильного варианта.<br>
идея не совершенна поскольку объект все равно передвигается не вертикально хоть и его движение более похоже на логическое поведение хоть и немного пъяного существа <img src="https://visavi.net/uploads/stickers/smile.gif" alt="smile"> <br>
поетому я жду совершенных идей...
https://visavi.net/topics/14949/264981
Перемещение по траектории ВетальTue, 26 Oct 2010 02:44:04 +0400Сообщенияhttps://visavi.net/topics/14949/264981ладно пока что сделаю что б эллемент перемещался по x оси до параллельного положения со вторым эллементом а потом буду его поднимать по y оси, но это не то что нужно! мне нужно что бы код сам определял диагональ и перемещался по ней! если кто знает жду советов... заранее спсибо!
https://visavi.net/topics/14949/264971
Перемещение по траектории ВетальTue, 26 Oct 2010 01:54:13 +0400Сообщенияhttps://visavi.net/topics/14949/264971что никто не знает?
https://visavi.net/topics/14949/264968
Перемещение по траектории ВетальTue, 26 Oct 2010 01:27:11 +0400Сообщенияhttps://visavi.net/topics/14949/264968вот пишу на PHP + JS проект.<br>
Имеется плоскость по которой перемещается шарик данные о координатах браузер получает через AJAX - Json и плавно перемещает его с начальной точки на новую взятой из БД и полученной через Ajax.<br>
Но вот дилемма! у меня есть не только этот перемещаемый эллемент на плоскости но и еще один который может быть как динамическим так и статистическим но это не важно! важно то что вышеуказанный шарик должен постоянно стремится перейти к данному эллементу и я никак не могу себе представить процес того как узнать через PHP в которую сторону двигатся шарику и как это записать в коде (PHP)!?<br>
т.е при следующем запросе в БД сначала должны записатся новые координаты (не возле того Эллемента) а в диапазоне 5 шагов от предыдущего месторасположени но больше приблизится к пункту назначения <img src="https://visavi.net/uploads/stickers/smile.gif" alt="smile"> ))<br>
извени все очень запутанно и трудно в этом разобраться но думаю что в общех чертах суть проблемы описана и понятна буду рад любому совету только по теме!
https://visavi.net/topics/14949/264954
Перемещение по траектории ВетальTue, 26 Oct 2010 00:33:04 +0400Сообщенияhttps://visavi.net/topics/14949/264954