Foros del Web » Programando para Internet » Javascript »

Ecuacion del Elipce

Estas en el tema de Ecuacion del Elipce en el foro de Javascript en Foros del Web. Hola, Lo que sucede es que nesesita generar elipses dinamicamente con JS, entonses queria saber si alguien conoce alguna funcion que me devuelva el X ...
  #1 (permalink)  
Antiguo 02/10/2010, 17:25
Avatar de ClubIce  
Fecha de Ingreso: diciembre-2008
Mensajes: 216
Antigüedad: 15 años, 10 meses
Puntos: 2
Ecuacion del Elipce

Hola,

Lo que sucede es que nesesita generar elipses dinamicamente con JS, entonses queria saber si alguien conoce alguna funcion que me devuelva el X e Y de la ubicacion de cada pixel que componen el Contorno del Elipse, para que yo despues puede manipularlo.
  #2 (permalink)  
Antiguo 02/10/2010, 19:32
Avatar de Panino5001
Me alejo de Omelas
 
Fecha de Ingreso: mayo-2004
Ubicación: -34.637167,-58.462984
Mensajes: 5.148
Antigüedad: 20 años, 5 meses
Puntos: 834
Respuesta: Ecuacion del Elipce

Básicamente, para crear un círculo, se trata de ubicar como coordenada x al coseno del radiovector de un círculo trigonométrico y como coordenada y al seno:
Un ejemplo:
Código PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<
html xmlns="http://www.w3.org/1999/xhtml">
<
head>
<
meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<
title>Documento sin título</title>
<
script>
function $(
id){return document.getElementById(id);}
function 
c(b,ax,ay){
    var 
clon=document.createElement('div');
    var 
fragment=document.createDocumentFragment();
    
clon.style.width=clon.style.height='10px'
    
clon.style.position='absolute';
    
clon.style.background='red';
    var 
p=2*Math.PI/6;
    for(
i=0;i<6;i++){
        
cl=clon.cloneNode(true);
        var 
ang=p*i;
        
cl.style.left=Math.cos(ang)*ax+'px';
        
cl.style.top=Math.sin(ang)*ay+'px';
        
fragment.appendChild(cl);
    }
    $(
b).appendChild(fragment);
}
onload=function(){
    
c('b',100,100);
}
</script>
</head>

<body>
<div id="b" style="position:relative; left:100px; top:100px;"></div>
</body>
</html> 
Si llamamos a las variables ax y ay, respectivamente, amplitud x y amplitud y, comprobarás que si no tienen el mismo valor se genera una elipse. Ejemplo:
Código PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<
html xmlns="http://www.w3.org/1999/xhtml">
<
head>
<
meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<
title>Documento sin título</title>
<
script>
function $(
id){return document.getElementById(id);}
function 
c(b,ax,ay){
    var 
clon=document.createElement('div');
    var 
fragment=document.createDocumentFragment();
    
clon.style.width=clon.style.height='10px'
    
clon.style.position='absolute';
    
clon.style.background='red';
    var 
p=2*Math.PI/6;
    for(
i=0;i<6;i++){
        
cl=clon.cloneNode(true);
        var 
ang=p*i;
        
cl.style.left=Math.cos(ang)*ax+'px';
        
cl.style.top=Math.sin(ang)*ay+'px';
        
fragment.appendChild(cl);
    }
    $(
b).appendChild(fragment);
}
onload=function(){
    
c('b',100,50);
}
</script>
</head>

<body>
<div id="b" style="position:relative; left:100px; top:100px;"></div>
</body>
</html> 

Etiquetas: ecuacion
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 02:17.