2 <H2>Class: cVector</H2>
\r
3 <pre> <A HREF=cObjeto.html>cObjeto</A> ----+
\r |
\r <A HREF=cObjetoPersistente.html>cObjetoPersistente</A> ----+
\r |
\r cVector
\r</pre><hr>
\r
4 <B>Description:</B><BR>La clase cVector es la implementación de un vector físico. Esta clase es el esqueleto de
\r
5 la aplicación ya que todas las velocidades y posiciones son del tipo cVector.
\r
6 Todos los calculos de movimientos, distancias, etc. se manejan con los metodos de esta clase
\r
7 <p><B>Unit:</B><BR><A HREF=Vectores.html>Vectores</A>
\r
8 <code> <A HREF=Vectores.pas>(Vectores.pas)</code></A><BR><BR>
\r
9 <p><B>Constructors:</B><BR>
\r
12 <IMG SRC=public.gif>
\r
13 <A HREF="cVector.html#0">constructor create( v: cVector ); overload;</A><BR>
\r
16 Constructor que copia los atributos de un Vector existente
\r
19 <IMG SRC=public.gif>
\r
20 <A HREF="cVector.html#1">constructor create( x: tLongitud = 0; y: tLongitud = 0; z: tLongitud = 0 ); overload;</A><BR>
\r
26 <p><B>Methods:</B><BR>
\r
29 <IMG SRC=public.gif>
\r
30 <A HREF="cVector.html#2">function mAddModulo( modulo: tLongitud ): cVector;</A><BR>
\r
33 Aumenta (o disminuye si el argumente es negativo) el modulo del vector
\r
36 <IMG SRC=public.gif>
\r
37 <A HREF="cVector.html#3">function mAddX( x: tLongitud ): cVector;</A><BR>
\r
40 Agrega un valor a la componente X
\r
43 <IMG SRC=public.gif>
\r
44 <A HREF="cVector.html#4">function mAddY( y: tLongitud ): cVector;</A><BR>
\r
47 Agrega un valor a la componente Y
\r
50 <IMG SRC=public.gif>
\r
51 <A HREF="cVector.html#5">function mAddZ( z: tLongitud ): cVector;</A><BR>
\r
54 Agrega un valor a la componente Z
\r
57 <IMG SRC=public.gif>
\r
58 <A HREF="cVector.html#6">procedure mDesSerializar( str: string ); override;</A><BR>
\r
61 Recrea el objeto a partir de una cadena de texto con el objeto
\r
65 <IMG SRC=public.gif>
\r
66 <A HREF="cVector.html#7">function mGetDebugInfo( debugLevel: tDebugInfo = DI_MINI ): string; override;</A><BR>
\r
69 Método heredado que devuelve un string con el estado del Objeto. Se utiliza para depurar
\r
70 y la información entregada depende del parámetro tDebugInfo.
\r
73 <IMG SRC=public.gif>
\r
74 <A HREF="cVector.html#8">function mGetDistancia( vec: cVector ): tLongitud;</A><BR>
\r
77 Obtiene la distancia al a otro vector
\r
80 <IMG SRC=public.gif>
\r
81 <A HREF="cVector.html#9">function mGetModulo: tLongitud;</A><BR>
\r
84 Obtiene el modulo del vector
\r
87 <IMG SRC=public.gif>
\r
88 <A HREF="cVector.html#10">function mGetX: tLongitud;</A><BR>
\r
91 Obtiene la componente X
\r
94 <IMG SRC=public.gif>
\r
95 <A HREF="cVector.html#11">function mGetY: tLongitud;</A><BR>
\r
98 Obtiene la componente Y
\r
101 <IMG SRC=public.gif>
\r
102 <A HREF="cVector.html#12">function mGetZ: tLongitud;</A><BR>
\r
105 Obtiene la componente Z
\r
108 <IMG SRC=public.gif>
\r
109 <A HREF="cVector.html#13">function mHacerVersor: cVector;</A><BR>
\r
112 Convierte el vector en un versor (norma 1)
\r
115 <IMG SRC=public.gif>
\r
116 <A HREF="cVector.html#14">function mModificarCon( vel: cVector; dT: tTiempo ): cVector;</A><BR>
\r
119 Modifica el vector con basandose en otro vector (pensado como velocidad) y un
\r
120 intervalo de tiempo siguiendo la formula física X' = X + V * dt
\r
121 (este metodo esta pensado basicamente para calcular los movimientos)
\r
124 <IMG SRC=public.gif>
\r
125 <A HREF="cVector.html#15">function mMultiplicar( vec: cVector ): cVector; overload;</A><BR>
\r
128 Se multiplica vectorialmente a si mismo por el vector vec
\r
131 <IMG SRC=public.gif>
\r
132 <A HREF="cVector.html#16">function mMultiplicar( esc: tLongitud ): cVector; overload;</A><BR>
\r
135 Se multiplica por un escalar
\r
138 <IMG SRC=public.gif>
\r
139 <A HREF="cVector.html#17">function mMultiplicarEsc( vec: cVector ): tLongitud;</A><BR>
\r
142 Obtiene el producto escalar entre si mismo y el vector vec
\r
145 <IMG SRC=public.gif>
\r
146 <A HREF="cVector.html#18">function mRestar( vec: cVector ): cVector;</A><BR>
\r
149 Resta a si mismo el vector vec
\r
152 <IMG SRC=public.gif>
\r
153 <A HREF="cVector.html#19">function mSerializar: string; override;</A><BR>
\r
156 Devuelve una cadena de texto con el objeto serializado.
\r
159 <IMG SRC=public.gif>
\r
160 <A HREF="cVector.html#20">function mSet( x, y, z: tLongitud ): cVector; overload;</A><BR>
\r
163 Establece los valores del vector x, y, z
\r
166 <IMG SRC=public.gif>
\r
167 <A HREF="cVector.html#21">function mSet( v: cVector ): cVector; overload;</A><BR>
\r
170 Modifica las componentes del vector basandose en otro
\r
173 <IMG SRC=public.gif>
\r
174 <A HREF="cVector.html#22">function mSetModulo( modulo: tLongitud ): cVector;</A><BR>
\r
177 Setea el modulo del vector a un valor determinado
\r
180 <IMG SRC=public.gif>
\r
181 <A HREF="cVector.html#23">function mSetX( x: tLongitud ): cVector;</A><BR>
\r
184 Setea la componente X
\r
187 <IMG SRC=public.gif>
\r
188 <A HREF="cVector.html#24">function mSetY( y: tLongitud ): cVector;</A><BR>
\r
191 Setea la componente Y
\r
194 <IMG SRC=public.gif>
\r
195 <A HREF="cVector.html#25">function mSetZ( z: tLongitud ): cVector;</A><BR>
\r
198 Setea la componente Z
\r
201 <IMG SRC=public.gif>
\r
202 <A HREF="cVector.html#26">function mSumar( vec: cVector ): cVector;</A><BR>
\r
205 Suma a si mismo el vector vec
\r
209 <p><IMG SRC=constructors.gif>
\r
210 <A NAME="0"></A><P>
\r
211 <IMG SRC=public_big.gif>
\r
212 <CODE>constructor create( v: cVector ); overload;</CODE>
\r
214 <dd>Constructor que copia los atributos de un Vector existente</dd><p>
\r
215 </dl></dd></dl><HR>
\r
216 <A NAME="1"></A><P>
\r
217 <IMG SRC=public_big.gif>
\r
218 <CODE>constructor create( x: tLongitud = 0; y: tLongitud = 0; z: tLongitud = 0 ); overload;</CODE>
\r
220 <dd>Crea un nuevo vector basandose en los atributos dados como parámetro.
\r
221 </dd><dd><B>Parameters</B></dd><dd> <CODE>x </CODE> : Componente en el eje X</dd><dd> <CODE>y </CODE> : Componente en el eje Y</dd><dd> <CODE>z </CODE> : Componente en el eje Z</dd><p>
\r
222 </dl></dd></dl><HR>
\r
223 <p><IMG SRC=methods.gif>
\r
224 <A NAME="2"></A><P>
\r
225 <IMG SRC=public_big.gif>
\r
226 <CODE>function mAddModulo( modulo: tLongitud ): cVector;</CODE>
\r
228 <dd>Setea el modulo del vector a un valor determinado (sólo tiene sentido si el modulo actual es distinto de cero)
\r
229 </dd><dd><B>Parameters</B></dd><dd> <CODE>modulo </CODE> : Modulo a adherir al verctor</dd><p>
\r
230 </dl></dd></dl><HR>
\r
231 <A NAME="3"></A><P>
\r
232 <IMG SRC=public_big.gif>
\r
233 <CODE>function mAddX( x: tLongitud ): cVector;</CODE>
\r
235 <dd>Agrega un valor a la componente X
\r
236 </dd><dd><B>Parameters</B></dd><dd> <CODE>x </CODE> : Valor a sumarle a la componente X</dd><p>
\r
237 </dl></dd></dl><HR>
\r
238 <A NAME="4"></A><P>
\r
239 <IMG SRC=public_big.gif>
\r
240 <CODE>function mAddY( y: tLongitud ): cVector;</CODE>
\r
242 <dd>Agrega un valor a la componente Y
\r
243 </dd><dd><B>Parameters</B></dd><dd> <CODE>y </CODE> : Valor a sumarle a la componente Y</dd><p>
\r
244 </dl></dd></dl><HR>
\r
245 <A NAME="5"></A><P>
\r
246 <IMG SRC=public_big.gif>
\r
247 <CODE>function mAddZ( z: tLongitud ): cVector;</CODE>
\r
249 <dd>Agrega un valor a la componente Z
\r
250 </dd><dd><B>Parameters</B></dd><dd> <CODE>z </CODE> : Valor a sumarle a la componente Z</dd><p>
\r
251 </dl></dd></dl><HR>
\r
252 <A NAME="6"></A><P>
\r
253 <IMG SRC=public_big.gif>
\r
254 <CODE>procedure mDesSerializar( str: string ); override;</CODE>
\r
256 <dd>Recrea el objeto a partir de una cadena de texto con el objeto
\r
258 </dd><dd><B>Parameters</B></dd><dd> <CODE>str </CODE> : Cadena de texto con el objeto serializado.</dd><p>
\r
259 </dl></dd></dl><HR>
\r
260 <A NAME="7"></A><P>
\r
261 <IMG SRC=public_big.gif>
\r
262 <CODE>function mGetDebugInfo( debugLevel: tDebugInfo = DI_MINI ): string; override;</CODE>
\r
264 <dd>Devuelve el estado del objeto basandose en la cantidad de datos requeridos:<br>
\r
265 Siempre devuelve los valores de las componentes x, y, z y si debugLevel es mayor que DI_NORMAL,
\r
266 también muestra el módulo.
\r
267 @return Cadena de texto con el estado del Objeto.
\r
268 </dd><dd><B>Parameters</B></dd><dd> <CODE>debugLevel </CODE> : Cantidad de información requerida</dd><p>
\r
269 </dl></dd></dl><HR>
\r
270 <A NAME="8"></A><P>
\r
271 <IMG SRC=public_big.gif>
\r
272 <CODE>function mGetDistancia( vec: cVector ): tLongitud;</CODE>
\r
274 <dd>Obtiene la distancia al a otro vector (en realidad se tratan como puntos)
\r
275 @returns Distancia al otro vector
\r
276 </dd><dd><B>Parameters</B></dd><dd> <CODE>vec </CODE> : Punto al cual se calcula la distancia</dd><p>
\r
277 </dl></dd></dl><HR>
\r
278 <A NAME="9"></A><P>
\r
279 <IMG SRC=public_big.gif>
\r
280 <CODE>function mGetModulo: tLongitud;</CODE>
\r
282 <dd></dd><dd><B>Returns</B></dd><dd> Modulo (o norma) del vector</dd><p>
\r
283 </dl></dd></dl><HR>
\r
284 <A NAME="10"></A><P>
\r
285 <IMG SRC=public_big.gif>
\r
286 <CODE>function mGetX: tLongitud;</CODE>
\r
288 <dd></dd><dd><B>Returns</B></dd><dd> Componente X del vector</dd><p>
\r
289 </dl></dd></dl><HR>
\r
290 <A NAME="11"></A><P>
\r
291 <IMG SRC=public_big.gif>
\r
292 <CODE>function mGetY: tLongitud;</CODE>
\r
294 <dd></dd><dd><B>Returns</B></dd><dd> Componente Y del vector</dd><p>
\r
295 </dl></dd></dl><HR>
\r
296 <A NAME="12"></A><P>
\r
297 <IMG SRC=public_big.gif>
\r
298 <CODE>function mGetZ: tLongitud;</CODE>
\r
300 <dd></dd><dd><B>Returns</B></dd><dd> Componente Z del vector</dd><p>
\r
301 </dl></dd></dl><HR>
\r
302 <A NAME="13"></A><P>
\r
303 <IMG SRC=public_big.gif>
\r
304 <CODE>function mHacerVersor: cVector;</CODE>
\r
306 <dd>Convierte el vector en un versor (sólo tiene sentido si el modulo actual es distinto de cero)</dd><p>
\r
307 </dl></dd></dl><HR>
\r
308 <A NAME="14"></A><P>
\r
309 <IMG SRC=public_big.gif>
\r
310 <CODE>function mModificarCon( vel: cVector; dT: tTiempo ): cVector;</CODE>
\r
312 <dd>Modifica el vector con basandose en otro vector (pensado como velocidad) y un
\r
313 intervalo de tiempo siguiendo la formula física X' = X + V * dt
\r
314 (este metodo esta pensado basicamente para calcular los movimientos)
\r
315 </dd><dd><B>Parameters</B></dd><dd> <CODE>vel </CODE> : Vector velocidad</dd><dd> <CODE>dT </CODE> : Intervalo de tiempo</dd><p>
\r
316 </dl></dd></dl><HR>
\r
317 <A NAME="15"></A><P>
\r
318 <IMG SRC=public_big.gif>
\r
319 <CODE>function mMultiplicar( vec: cVector ): cVector; overload;</CODE>
\r
321 <dd>Se multiplica por un escalar
\r
322 </dd><dd><B>Parameters</B></dd><dd> <CODE>esc </CODE> : Escalar por el cual se multiplica</dd><p>
\r
323 </dl></dd></dl><HR>
\r
324 <A NAME="16"></A><P>
\r
325 <IMG SRC=public_big.gif>
\r
326 <CODE>function mMultiplicar( esc: tLongitud ): cVector; overload;</CODE>
\r
328 <dd>Se multiplica por un escalar</dd><p>
\r
329 </dl></dd></dl><HR>
\r
330 <A NAME="17"></A><P>
\r
331 <IMG SRC=public_big.gif>
\r
332 <CODE>function mMultiplicarEsc( vec: cVector ): tLongitud;</CODE>
\r
334 <dd>Obtiene el producto escalar entre si mismo y el vector vec
\r
335 @return Producto escalar entre los vectores
\r
336 </dd><dd><B>Parameters</B></dd><dd> <CODE>vec </CODE> : Vector por el cual se multiplica escalarmente</dd><p>
\r
337 </dl></dd></dl><HR>
\r
338 <A NAME="18"></A><P>
\r
339 <IMG SRC=public_big.gif>
\r
340 <CODE>function mRestar( vec: cVector ): cVector;</CODE>
\r
342 <dd>Resta a si mismo el vector vec
\r
343 </dd><dd><B>Parameters</B></dd><dd> <CODE>vec </CODE> : Vector que se resta</dd><p>
\r
344 </dl></dd></dl><HR>
\r
345 <A NAME="19"></A><P>
\r
346 <IMG SRC=public_big.gif>
\r
347 <CODE>function mSerializar: string; override;</CODE>
\r
349 <dd></dd><dd><B>Returns</B></dd><dd> Cadena de texto con el objeto serializado.</dd><p>
\r
350 </dl></dd></dl><HR>
\r
351 <A NAME="20"></A><P>
\r
352 <IMG SRC=public_big.gif>
\r
353 <CODE>function mSet( x, y, z: tLongitud ): cVector; overload;</CODE>
\r
355 <dd>Establece las componentes del vector
\r
356 </dd><dd><B>Parameters</B></dd><dd> <CODE>x </CODE> : Nuevo valor de la componente en el eje X</dd><dd> <CODE>y </CODE> : Nuevo valor de la componente en el eje Y</dd><dd> <CODE>z </CODE> : Nuevo valor de la componente en el eje Z</dd><p>
\r
357 </dl></dd></dl><HR>
\r
358 <A NAME="21"></A><P>
\r
359 <IMG SRC=public_big.gif>
\r
360 <CODE>function mSet( v: cVector ): cVector; overload;</CODE>
\r
362 <dd>Modifica las componentes del vector basandose en otro</dd><p>
\r
363 </dl></dd></dl><HR>
\r
364 <A NAME="22"></A><P>
\r
365 <IMG SRC=public_big.gif>
\r
366 <CODE>function mSetModulo( modulo: tLongitud ): cVector;</CODE>
\r
368 <dd>Setea el modulo del vector a un valor determinado
\r
369 </dd><dd><B>Parameters</B></dd><dd> <CODE>modulo </CODE> : Valor del nuevo Módulo</dd><p>
\r
370 </dl></dd></dl><HR>
\r
371 <A NAME="23"></A><P>
\r
372 <IMG SRC=public_big.gif>
\r
373 <CODE>function mSetX( x: tLongitud ): cVector;</CODE>
\r
375 <dd>Setea la componente X
\r
376 </dd><dd><B>Parameters</B></dd><dd> <CODE>x </CODE> : Nuevo valor de la componente en el eje X</dd><p>
\r
377 </dl></dd></dl><HR>
\r
378 <A NAME="24"></A><P>
\r
379 <IMG SRC=public_big.gif>
\r
380 <CODE>function mSetY( y: tLongitud ): cVector;</CODE>
\r
382 <dd>Setea la componente Y
\r
383 </dd><dd><B>Parameters</B></dd><dd> <CODE>y </CODE> : Nuevo valor de la componente en el eje Y</dd><p>
\r
384 </dl></dd></dl><HR>
\r
385 <A NAME="25"></A><P>
\r
386 <IMG SRC=public_big.gif>
\r
387 <CODE>function mSetZ( z: tLongitud ): cVector;</CODE>
\r
389 <dd>Setea la componente Z
\r
390 </dd><dd><B>Parameters</B></dd><dd> <CODE>z </CODE> : Nuevo valor de la componente en el eje Z</dd><p>
\r
391 </dl></dd></dl><HR>
\r
392 <A NAME="26"></A><P>
\r
393 <IMG SRC=public_big.gif>
\r
394 <CODE>function mSumar( vec: cVector ): cVector;</CODE>
\r
396 <dd>Suma a si mismo el vector vec
\r
397 </dd><dd><B>Parameters</B></dd><dd> <CODE>vec </CODE> : Vector a sumarle</dd><p>
\r
398 </dl></dd></dl><HR>
\r