Перемещение по траектории - Visavi.net https://visavi.net/ RSS - Visavi.net https://visavi.net/assets/img/images/logo_small.png RSS - 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&#91;&#039;x&#039;] &lt; $b&#91;&#039;x&#039;]) { $x = ($b&#91;&#039;x&#039;] - $a&#91;&#039;x&#039;]); } else { $x = ($a&#91;&#039;x&#039;] - $b&#91;&#039;x&#039;]); } if ($a&#91;&#039;y&#039;] &lt; $b&#91;&#039;y&#039;]) { $y = ($b&#91;&#039;y&#039;] - $a&#91;&#039;y&#039;]); } else { $y = ($a&#91;&#039;y&#039;] - $b&#91;&#039;y&#039;]); } return Array (&#039;x&#039; =&gt; $x, &#039;y&#039; =&gt; $y); } function automoved ($id, $xy) { $array = nps ($id); $rand = rand (1,4); $array&#91;&#039;x&#039;] = (int)$array&#91;&#039;x&#039;]; $array&#91;&#039;y&#039;] = (int)$array&#91;&#039;y&#039;]; if ($rand == 1) { $moved = array ( &#039;x&#039; =&gt; ($array&#91;&#039;x&#039;] + 5), &#039;y&#039; =&gt; ($array&#91;&#039;y&#039;]) ); } else if ($rand == 2) { $moved = array ( &#039;x&#039; =&gt; ($array&#91;&#039;x&#039;] - 5), &#039;y&#039; =&gt; ($array&#91;&#039;y&#039;]) ); } else if ($rand == 3) { $moved = array ( &#039;x&#039; =&gt; ($array&#91;&#039;x&#039;]), &#039;y&#039; =&gt; ($array&#91;&#039;y&#039;] + 5) ); } else if ($rand == 4) { $moved = array ( &#039;x&#039; =&gt; ($array&#91;&#039;x&#039;]), &#039;y&#039; =&gt; ($array&#91;&#039;y&#039;] - 5) ); } $distance = distance (array (&#039;x&#039; =&gt; $array&#91;&#039;x&#039;],&#039;y&#039; =&gt; $array&#91;&#039;y&#039;]), $xy); $x = (int) $distance&#91;&#039;x&#039;]; $y = (int) $distance&#91;&#039;y&#039;]; $d = distance ($moved, $xy); $nx = (int) $d&#91;&#039;x&#039;]; $ny = (int) $d&#91;&#039;y&#039;]; if ($nx &lt; $x or $ny &lt; $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/265252 8, разве что rand(), будет интересно). https://visavi.net/topics/14949/265247 Перемещение по траектории Александр Tue, 26 Oct 2010 20:21:51 +0400 Сообщения https://visavi.net/topics/14949/265247 7. <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/265141 5. <strong>Муз-ТВ</strong>, блин мне нужен не процес перемещения тем более данные в который нужно вбивать самому, а вычисление кодом диагонали между двумя точками на плоскости и при каждом обновлении стр. что б один из элементов допустим &quot;А&quot; перемешался к элементу &quot;Б&quot; с шагом в 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">&lt;?php function shar($x,$y,$x2,$y2) if($x==$x1 &amp;&amp; $y==$y2) return &#039;не двигается&#039;; if($x&gt;$x1 &amp;&amp; $y==$y2) return &#039;вправо&#039;; if($x&lt;$x1 &amp;&amp; $y==$y2) return &#039;влево&#039;; if($x==$x1 &amp;&amp; $y&gt;$y2) return &#039;вниз&#039;; if($x==$x1 &amp;&amp; $y&lt;$y2) return &#039;вверх&#039;; if($x&lt;$x1 &amp;&amp; $y&lt;$y2) return &#039;по диагонали вправо вверх&#039;; if($x&gt;$x1 &amp;&amp; $y&gt;$y2) return &#039;по диагонали влево вниз&#039;; if($x&lt;$x1 &amp;&amp; $y&gt;$y2) return &#039;по диагонали влево вверх&#039;; if($x&gt;$x1 &amp;&amp; $y&lt;$y2) return &#039;по диагонали вправо вверх&#039;; } </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