<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="pt-BR">
	<id>https://wiki.brdoom.org/index.php?action=history&amp;feed=atom&amp;title=Distance</id>
	<title>Distance - Histórico de revisão</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.brdoom.org/index.php?action=history&amp;feed=atom&amp;title=Distance"/>
	<link rel="alternate" type="text/html" href="https://wiki.brdoom.org/index.php?title=Distance&amp;action=history"/>
	<updated>2026-04-14T23:35:11Z</updated>
	<subtitle>Histórico de revisões para esta página neste wiki</subtitle>
	<generator>MediaWiki 1.45.1</generator>
	<entry>
		<id>https://wiki.brdoom.org/index.php?title=Distance&amp;diff=156&amp;oldid=prev</id>
		<title>MegaManx3: Criou página com &#039;Aqui está uma representação em ACS de uma função similar a VectorLength.  function int fdistance (int tid1, int tid2)  {  	int len;  	int y = GetActorY(tid1) - GetActorY(tid2);  	int x = GetActorX(tid1) - GetActorX(tid2);  	int z = GetActorZ(tid1) - GetActorZ(tid2);    	int ang = VectorAngle(x, y);  	if(((ang+0.125)%0.5) &gt; 0.25) len = FixedDiv(y, Sin(ang));  	else len = FixedDiv(x, Cos(ang));    	ang = VectorAngle(len, z);  	if(((ang+0.125)%0.5) &gt; 0.25) len = Fi...&#039;</title>
		<link rel="alternate" type="text/html" href="https://wiki.brdoom.org/index.php?title=Distance&amp;diff=156&amp;oldid=prev"/>
		<updated>2026-02-14T22:04:40Z</updated>

		<summary type="html">&lt;p&gt;Criou página com &amp;#039;Aqui está uma representação em ACS de uma função similar a &lt;a href=&quot;/index.php/VectorLength&quot; title=&quot;VectorLength&quot;&gt;VectorLength&lt;/a&gt;.  function int fdistance (int tid1, int tid2)  {  	int len;  	int y = GetActorY(tid1) - GetActorY(tid2);  	int x = GetActorX(tid1) - GetActorX(tid2);  	int z = GetActorZ(tid1) - GetActorZ(tid2);    	int ang = VectorAngle(x, y);  	if(((ang+0.125)%0.5) &amp;gt; 0.25) len = FixedDiv(y, Sin(ang));  	else len = FixedDiv(x, Cos(ang));    	ang = VectorAngle(len, z);  	if(((ang+0.125)%0.5) &amp;gt; 0.25) len = Fi...&amp;#039;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Página nova&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Aqui está uma representação em ACS de uma função similar a [[VectorLength]].&lt;br /&gt;
 function int fdistance (int tid1, int tid2)&lt;br /&gt;
 {&lt;br /&gt;
 	int len;&lt;br /&gt;
 	int y = GetActorY(tid1) - GetActorY(tid2);&lt;br /&gt;
 	int x = GetActorX(tid1) - GetActorX(tid2);&lt;br /&gt;
 	int z = GetActorZ(tid1) - GetActorZ(tid2);&lt;br /&gt;
 &lt;br /&gt;
 	int ang = VectorAngle(x, y);&lt;br /&gt;
 	if(((ang+0.125)%0.5) &amp;gt; 0.25) len = FixedDiv(y, Sin(ang));&lt;br /&gt;
 	else len = FixedDiv(x, Cos(ang));&lt;br /&gt;
 &lt;br /&gt;
 	ang = VectorAngle(len, z);&lt;br /&gt;
 	if(((ang+0.125)%0.5) &amp;gt; 0.25) len = FixedDiv(z, Sin(ang));&lt;br /&gt;
 	else len = FixedDiv(len, Cos(ang));&lt;br /&gt;
 &lt;br /&gt;
 	return len;&lt;br /&gt;
 }&lt;br /&gt;
A função acima funciona rotacionando os pontos para que eles se alinhem com um eixo. Ela roda em tempo constante e quase sempre é mais rápida do que a versão pitagórica mais reconhecível abaixo:&lt;br /&gt;
 function int distance (int tid1, int tid2)&lt;br /&gt;
 {&lt;br /&gt;
 	int x, y, z, d;&lt;br /&gt;
 	x = (GetActorX(tid1) - GetActorX(tid2)) &amp;gt;&amp;gt; 16; // Converte fixed point para inteiro&lt;br /&gt;
 	y = (GetActorY(tid1) - GetActorY(tid2)) &amp;gt;&amp;gt; 16;&lt;br /&gt;
 	z = (GetActorZ(tid1) - GetActorZ(tid2)) &amp;gt;&amp;gt; 16;&lt;br /&gt;
 	d = Sqrt( x*x + y*y + z*z );&lt;br /&gt;
 	return d;&lt;br /&gt;
 }&lt;/div&gt;</summary>
		<author><name>MegaManx3</name></author>
	</entry>
</feed>