Tesis Simulador Circuitos 3D.pdf - MaestrÃa en Ciencias de la ...
Tesis Simulador Circuitos 3D.pdf - MaestrÃa en Ciencias de la ...
Tesis Simulador Circuitos 3D.pdf - MaestrÃa en Ciencias de la ...
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
separacionEntrePuntosRejil<strong>la</strong> + 10)+<br />
numero_Punto_Rejil<strong>la</strong> = ((cont<strong>en</strong>edorGrafico.x)/<br />
numero_Punto_Inicial_Fi<strong>la</strong>_Rejil<strong>la</strong>;<br />
// -----------------------------------------------------------<br />
// Guardado <strong>de</strong> los datos <strong>de</strong>l compon<strong>en</strong>te <strong>en</strong> un arreglo <strong>de</strong> datos:<br />
// "datosCompon<strong>en</strong>te"<br />
// -----------------------------------------------------------<br />
[0][0]<br />
// [0][1]<br />
datosCompon<strong>en</strong>te[0] = new Array();<br />
datosCompon<strong>en</strong>te[0].push(i_id<strong>en</strong>tificadorCompon<strong>en</strong>te); //<br />
datosCompon<strong>en</strong>te[0].push(numero_Punto_Rejil<strong>la</strong>);<br />
datosCompon<strong>en</strong>te[0].push(puntosRejil<strong>la</strong>[numero_Punto_Rejil<strong>la</strong>].xg); // [0][2]<br />
datosCompon<strong>en</strong>te[0].push(puntosRejil<strong>la</strong>[numero_Punto_Rejil<strong>la</strong>].yg); // [0][3]<br />
datosCompon<strong>en</strong>te[0].push(0); // coord<strong>en</strong>ada "z" <strong>de</strong>l compon<strong>en</strong>te // [0][4]<br />
datosCompon<strong>en</strong>te[0].push(new Array()); // Ubicacion(t) <strong>en</strong>tre nodos "z" [0][5]<br />
datosCompon<strong>en</strong>te[0].push(new Array()); // Distancia(t) <strong>en</strong>tre nodos [0][6]<br />
datosCompon<strong>en</strong>te[0].push(new Array()); // Inclinacion(t) <strong>en</strong>tre nodos [0][7]<br />
actualiza_Coord<strong>en</strong>adas_Terminales();<br />
// Actualiza "lineaGrafica" <strong>de</strong> conexion a <strong>la</strong> v<strong>en</strong>tana <strong>de</strong> edicion<br />
if (v<strong>en</strong>tanaEdicionCompon<strong>en</strong>te.v<strong>en</strong>tanaAbierta) {<br />
v<strong>en</strong>tanaEdicionCompon<strong>en</strong>te.actualizaPosicion(this);<br />
}<br />
}<br />
e.updateAfterEv<strong>en</strong>t();<br />
public function actualiza_Coord<strong>en</strong>adas_Terminales():void {<br />
// -----------------------------------------------------------<br />
// Metodo ABSTRACTO: se <strong>de</strong>be "<strong>de</strong>finir" <strong>en</strong> una subc<strong>la</strong>se<br />
// -----------------------------------------------------------<br />
}<br />
internal function g<strong>en</strong>eraPosicionValidaX(posicionMouseX:Number):Number {<br />
// --- Limite <strong>de</strong>recho <strong>de</strong> <strong>la</strong> rejil<strong>la</strong> <strong>de</strong> dibujo ---<br />
var limiteXMaximoPosicionRejil<strong>la</strong>:Number = separacionEntrePuntosRejil<strong>la</strong>*<br />
(numeroPuntosAnchoRejil<strong>la</strong>/2) - offsetHorizontal;<br />
var limiteXMinimoPosicionRejil<strong>la</strong>:Number = -separacionEntrePuntosRejil<strong>la</strong>*<br />
(numeroPuntosAnchoRejil<strong>la</strong>/2) + offsetHorizontal;<br />
if (posicionMouseX > limiteXMaximoPosicionRejil<strong>la</strong>) {<br />
return limiteXMaximoPosicionRejil<strong>la</strong>;<br />
}<br />
// --- Limite izquierdo <strong>de</strong> <strong>la</strong> rejil<strong>la</strong> <strong>de</strong> dibujo ---<br />
if (posicionMouseX < limiteXMinimoPosicionRejil<strong>la</strong>) {<br />
return limiteXMinimoPosicionRejil<strong>la</strong>;<br />
}<br />
// --- D<strong>en</strong>tro <strong>de</strong> <strong>la</strong> rejil<strong>la</strong> <strong>de</strong> dibujo ---<br />
return separacionEntrePuntosRejil<strong>la</strong>*Math.round(posicionMouseX/<br />
separacionEntrePuntosRejil<strong>la</strong>);<br />
}<br />
internal function g<strong>en</strong>eraPosicionValidaY(posicionMouseY:Number):Number {<br />
// --- Limite inferior <strong>de</strong> <strong>la</strong> rejil<strong>la</strong> <strong>de</strong> dibujo ---<br />
var limiteYMaximoPosicionRejil<strong>la</strong>:Number = separacionEntrePuntosRejil<strong>la</strong>*<br />
(numeroPuntosAltoRejil<strong>la</strong>/2) - offsetVertical;<br />
var limiteYMinimoPosicionRejil<strong>la</strong>:Number = -separacionEntrePuntosRejil<strong>la</strong>*<br />
(numeroPuntosAltoRejil<strong>la</strong>/2) + offsetVertical;<br />
40