// JavaScript Document
// ancho y alto del contenedor
var ancho = 500;
var alto = 500;
var x0 = 0;
var y0 = 0;
//var unid_long;
var diferencial = 0.1;
if(navigator.appVersion.indexOf("MSIE") != -1) var IE = true;
var vertical = true;
var texto_izq = false;
function ejes_cartesianos(origenX,origenY,pixelunidX,pixelunidY){
document.getElementById('contenedorejes').innerHTML = "";
// origenes de coordenadas
x0 = origenX;
y0 = origenY;
// longitud unidades
unid_longX = pixelunidX;
unid_longY = pixelunidY;
// numero de unidades eje x+
var num_unids_x_p = (ancho-x0)/unid_longX;
// numero de unidades eje x-
var num_unids_x_n = x0/unid_longX;
// numero unidades eje y+
var num_unids_y_p = y0/unid_longY;
// numero unidades eje y-
var num_unids_y_n = (alto-y0)/unid_longY;
// EJES
// EJE X completo
x = 0;
y = y0;
punto= document.createElement("div");
if(IE) punto.setAttribute("className","ejeXcompleto");
else punto.setAttribute("class","ejeXcompleto");
punto.style.left = x + "px";
punto.style.top = y + "px";
punto.style.width = ancho + "px";
punto.style.height = 1 + "px";
document.getElementById('contenedorejes').appendChild(punto);
// eje x divisiones
// eje x +
for(i=0;i<=num_unids_x_p;i++){
x = x0 + i*unid_longX;
y = y0;
punto= document.createElement("div");
if(IE) punto.setAttribute("className","ejeX");
else punto.setAttribute("class","ejeX");
punto.style.left = x + "px";
punto.style.top = y + "px";
document.getElementById('contenedorejes').appendChild(punto);
}
// eje x-
for(i=0;i<=num_unids_x_n;i++){
x = x0 - i*unid_longX;
y = y0;
punto= document.createElement("div");
if(IE) punto.setAttribute("className","ejeX");
else punto.setAttribute("class","ejeX");
punto.style.left = x + "px";
punto.style.top = y + "px";
document.getElementById('contenedorejes').appendChild(punto);
}
// EJE Y
// EJE Y completo
x = x0;
y = 0;
punto= document.createElement("div");
if(IE) punto.setAttribute("className","ejeXcompleto");
else punto.setAttribute("class","ejeXcompleto");
punto.style.left = x + "px";
punto.style.top = y + "px";
punto.style.width = 1 + "px";
punto.style.height = alto + "px";
document.getElementById('contenedorejes').appendChild(punto);
// eje y divisiones
// eje y+
for(i=0;i<=num_unids_y_p;i++){
x = x0;
y = y0 - i*unid_longY;
punto= document.createElement("div");
if(IE) punto.setAttribute("className","ejeY");
else punto.setAttribute("class","ejeY");
punto.style.left = x + "px";
punto.style.top = y + "px";
document.getElementById('contenedorejes').appendChild(punto);
}
// eje y-
for(i=0;i<=num_unids_y_n;i++){
x = x0;
y = y0 + i*unid_longY;
punto= document.createElement("div");
if(IE) punto.setAttribute("className","ejeY");
else punto.setAttribute("class","ejeY");
punto.style.left = x + "px";
punto.style.top = y + "px";
document.getElementById('contenedorejes').appendChild(punto);
}
}

function dibujaPunto(m,n,tipo,txt){
var xP = parseFloat(m);
var yP = parseFloat(-n);
x = x0 + parseInt(xP*unid_longX);
y = y0 + parseInt(yP*unid_longY);
if(vertical == true){
punto= document.createElement("div");
if(tipo == 1){
if(IE) punto.setAttribute("className","punto");
else punto.setAttribute("class","punto");
}
if(tipo == 2){
if(IE) punto.setAttribute("className","puntovisitante");
else punto.setAttribute("class","puntovisitante");
}
if(tipo == 3){
if(IE) punto.setAttribute("className","puntocasa");
else punto.setAttribute("class","puntocasa");
}
punto.style.left = x + "px";
punto.style.top = y + "px";
document.getElementById('contenedorejes').appendChild(punto);
}
else{
punto= document.createElement("div");
if(IE) punto.setAttribute("className","puntohorizontal");
else punto.setAttribute("class","puntohorizontal");
punto.style.left = x + "px";
punto.style.top = y + "px";
document.getElementById('contenedorejes').appendChild(punto);
}
if(txt!= ""){
// el texto que acompaņa a los puntos
var texto = txt;
textoPunto = document.createTextNode(texto);
divTexto = document.createElement("div");
if(IE) divTexto.setAttribute("className","texto");
else divTexto.setAttribute("class","texto");
if(texto_izq == false){
divTexto.style.left = (x-3) + "px";
divTexto.style.top = (y+2) + "px";
}
else{
divTexto.style.left = (x-11) + "px";
divTexto.style.top = (y-5) + "px";
}
divTexto.appendChild(textoPunto);
document.getElementById('contenedorejes').appendChild(divTexto);
}
return true;
}

function dibujaSegmento(pt1,pt2,tipo){
// ancho del segmento
var a = pt2[0] - pt1[0];
// alto del segmento
var b = pt2[1] - pt1[1];
// si el segmento no es vertical
if (a != 0){
var pendiente = b/a;
// si pendiente positiva
if (a>0){
for( i =0; i <= a; i += diferencial){
absc = pt1[0] + i;
ordn = pt1[1] + pendiente*i;
dibujaPunto(absc,ordn,tipo,"");
}
}
// si pendiente negativa
else{
for( i =0; i >= a; i -= diferencial){
absc = pt1[0] + i;
ordn = pt1[1] + pendiente*i;
dibujaPunto(absc,ordn,tipo,"");
}
}
}
// el segmento es vertical
else{
if (b>0){
for( i =0; i <= b; i += diferencial){
absc = pt1[0];
ordn = pt1[1]+i;
dibujaPunto(absc,ordn,tipo,"");
}
}
else{
for( i =0; i >= b; i -= diferencial){
absc = pt1[0];
ordn = pt1[1]+i;
dibujaPunto(absc,ordn,tipo,"");
}
}
}
return true;
}

