From 58d67676da1f9a8949d706c8845a19e47dc5ee45 Mon Sep 17 00:00:00 2001 From: Edmar Moretti Date: Thu, 1 Nov 2007 18:36:49 +0000 Subject: [PATCH] na ferramenta de cálculo de distâncias, foi incluído o desenho de um círculo com o raio definido conforme a última distância incluida --- aplicmap/geral.htm | 2 +- classesjs/funcoes.js | 22 +++++++++++++++++++++- pacotes/richdraw/richdraw_tudo_compacto.js | 4 ++-- pacotes/richdraw/svgrenderer.js | 7 +++++++ pacotes/richdraw/svgrenderer_compacto.js | 2 +- pacotes/richdraw/vmlrenderer.js | 3 +++ pacotes/richdraw/vmlrenderer_compacto.js | 2 +- 7 files changed, 36 insertions(+), 6 deletions(-) diff --git a/aplicmap/geral.htm b/aplicmap/geral.htm index 3fc499b..05996e4 100644 --- a/aplicmap/geral.htm +++ b/aplicmap/geral.htm @@ -7,7 +7,7 @@ - +
diff --git a/classesjs/funcoes.js b/classesjs/funcoes.js index de9400d..aee3ec9 100644 --- a/classesjs/funcoes.js +++ b/classesjs/funcoes.js @@ -1153,6 +1153,8 @@ function ativaClicks(docMapa) pontosdistobj.ypt[n] = objposicaocursor.ddy; pontosdistobj.xtela[n] = objposicaocursor.telax; pontosdistobj.ytela[n] = objposicaocursor.telay; + pontosdistobj.ximg[n] = objposicaocursor.imgx + pontosdistobj.yimg[n] = objposicaocursor.imgy pontosdistobj.dist[n] = 0; if (navn) {pontosdistobj.linhas[n] = richdraw.renderer.create(richdraw.mode, richdraw.fillColor, richdraw.lineColor, richdraw.lineWidth, objposicaocursor.imgx,objposicaocursor.imgy,objposicaocursor.imgx,objposicaocursor.imgy);} @@ -1166,13 +1168,25 @@ function ativaClicks(docMapa) { try {richdraw.renderer.resize(pontosdistobj.linhas[n-1], pontosdistobj.xtela[n-1], pontosdistobj.ytela[n-1], objposicaocursor.imgx, objposicaocursor.imgy);} - catch(e){window.status="erro ao desenhar a linha";} + catch(e){window.status="erro ao desenhar a linha";} + var dx = Math.pow(((pontosdistobj.xtela[n])*1) - ((pontosdistobj.xtela[n-1])*1),2); + var dy = Math.pow(((pontosdistobj.ytela[n])*1) - ((pontosdistobj.ytela[n-1])*1),2); + var w = Math.sqrt(dx + dy); + try + {richdraw.renderer.create('circ', '', 'rgb(250,250,250)', richdraw.lineWidth, pontosdistobj.xtela[n-1] - imagemxi,pontosdistobj.ytela[n-1] - imagemyi,w,w);} + catch(e){window.status="erro ao desenhar o raio";} } else { try {richdraw.renderer.resize(pontosdistobj.linhas[n-1], pontosdistobj.xtela[n-1], pontosdistobj.ytela[n-1], (objposicaocursor.imgx)-(objmapa.w/2), objposicaocursor.imgy);} catch(e){window.status="erro ao desenhar a linha";} + var dx = Math.pow(((pontosdistobj.xtela[n])*1) - ((pontosdistobj.xtela[n-1])*1),2); + var dy = Math.pow(((pontosdistobj.ytela[n])*1) - ((pontosdistobj.ytela[n-1])*1),2); + var w = Math.sqrt(dx + dy); + try + {richdraw.renderer.create('circ', '', 'rgb(250,250,250)', richdraw.lineWidth, pontosdistobj.ximg[n-1]-w,pontosdistobj.yimg[n-1]-w,w*2,w*2);} + catch(e){window.status="erro ao desenhar o raio";} } } inseremarcaf(objposicaocursor.telax,objposicaocursor.telay); @@ -3468,6 +3482,10 @@ xtela - coordenada x na tela ytela - coordenada y na tela +ximg - coordenada x na imagem do mapa + +yimg - coordenada y na imagem do mapa + linhas - lista de objetos criados pela biblioteca richdraw utilizados no desenho da linha de medição */ function pontosdist() @@ -3477,6 +3495,8 @@ function pontosdist() this.dist = new Array(); this.xtela = new Array(); this.ytela = new Array(); + this.ximg = new Array(); + this.yimg = new Array(); this.linhas = new Array(); } /* diff --git a/pacotes/richdraw/richdraw_tudo_compacto.js b/pacotes/richdraw/richdraw_tudo_compacto.js index 2cd07f2..83b25e8 100644 --- a/pacotes/richdraw/richdraw_tudo_compacto.js +++ b/pacotes/richdraw/richdraw_tudo_compacto.js @@ -1,6 +1,6 @@ eval(function(p,a,c,k,e,d){e=function(c){return(c