É eu tenho um problema mais ou menos parecido...
To trabalhando desenvolvendo um programa em AS3 voltado a
Bioinformatica, na verdade consiste de projetar alguns retangulos,
linhas e curvas em um "grafico", o problema é que os numeros recebidos
como coordenada x esta em escala de bilhão, ainda não tenho ideia de
como resolver...
mas orbrigado mesmo pela resposta Gabriela, vo da uma olhadinha melhor
no Matrix.
Abraço.
On 10 out, 11:13, Dam <[EMAIL PROTECTED]> wrote:
> Muito obrigado Gabriela.
> Eu estava pesquisando mesmo sobre o Matrix pq tinha uma suspeita de
> que uma solução seria por ele. Porém, a sua solução tira o trabalho do
> servidor de converter os pontos e o transfere para o cliente flex, ou
> seja, eu ainda continuo convertendo os pontos. Bem, mas como isso é
> feito no cliente talvez o processamento seja mais rápido.
> E ainda tem um outro problema, o que eu recebo do banco não são apenas
> pontos, são geometrias mais complexas, como polígonos, linhas,
> multipolígonos, etc
>
> De qualquer forma vou testar seu código e comparar o desempenho.
> Agradeço novamente por sua ajuda
>
> []'s
> Damião
>
> On 10 out, 10:39, gabriela perry <[EMAIL PROTECTED]> wrote:
>
> > Ah...
> > Eu tinha mesmo um palpite que não era tão fácil...
> > Eu uso esta function aqui pra fazer isso:
>
> > public static function
> > transformCoordinates(matrixFrom:Matrix,origin:Point):Point{
> > var affineTransform:Matrix;
>
> > affineTransform = new Matrix(0,0,0,0,0,0);
> > affineTransform.a=matrixFrom.a;
> > affineTransform.d=matrixFrom.d;
> > affineTransform.tx=matrixFrom.tx;
> > affineTransform.ty=matrixFrom.ty;
>
> > var ptA:Point= affineTransform.transformPoint(origin);
>
> > return ptA;
> > }
>
> > Aqui vai um exemplo de como usar:
>
> > var givenX:Number=20; //O que veio do banco
> > var givenY:Number=20; //O que veio do banco
> > var tempScale:Number=0.5; //A razão entre o tamanho original e o teu visual
> > no Flex.
> > var suaEscalaX:Number=1; //Isso se tu quiser usar essa função pra fazer
> > zoom. Daí vais poder passar uma nova escala
> > var suaEscalaY:Number=1;
>
> > var origin:Point=new Point(givenX*tempScale, givenY*tempScale;
>
> > var pt:Point= PointTransformation.transformCoordinates(new
> > Matrix(suaEscalaX,
> >
> > 0,
> >
> > 0,
> >
> > suaEscalaY,
> >
> > seucontainer.x,
> >
> > seucontainer.y),
> >
> > origin);
>
> > É mais ou menos isso. Se não funcionar, esse é o caminho que eu uso.
> > Fora disso não consigo ajudar.
> > Boa sorte :0)
>
> > Gabriela Trindade Perry -http://www.gabriela.trindade.nom.br
>
> > > Date: Fri, 10 Oct 2008 06:28:59 -0700
> > > Subject: [flexdev] Re: Conversão de sistemas de coordenadas
> > > From: [EMAIL PROTECTED]
> > > To: [email protected]
>
> > > Não é bem assim. O String é só um exemplo de como é feito no plugin
> > > SVG.
> > > O problema é que no flex vc só pode desenhar numa área que vai do
> > > ponto (0,0) a (width, height). Mas as coordenadas do mapa que eu
> > > recebo do banco estão numa área e escala diferentes do viewbox do
> > > flex.
> > > O que eu quero saber é se no flex é possível configurar a exibição de
> > > um canvas para a área que representa o mapa sem precisar fazer
> > > conversão de pontos. Por exemplo: se no banco de dados eu recebo a
> > > latitude -40.243 e longitude -5.9971 eu preciso converter isso para
> > > (252, 45) por exemplo, para poder visualizá-lo no flex. O problema é
> > > que são muitos pontos e isso está causando perda de desempenho.
> > > Gostaria de não precisar fazer essa conversão, pois eu já trabalhei
> > > com SVG e isso era feito automaticamente.
>
> > > On 10 out, 10:06, gabriela perry <[EMAIL PROTECTED]> wrote:
> > > > Peraí: tu quer passar uma String como "-39.1772 5.8539 4.636 2.6862" e
> > > > usar para posicionar um objeto?
> > > > Direto não vai...
> > > > Vais ter que repartir a String, sei lá, num Array, e usar isso pra
> > > > passar os valores pra x, y, width e height
>
> > > > Mas é isso a tua "Conversão de sistemas de coordenadas"?
> > > > Achei que precissases converter um sistema em outro...
> > > > Que bom que é só isso :0)
>
> > > > Gabriela Trindade Perry -http://www.gabriela.trindade.nom.br
>
> > > > > Date: Fri, 10 Oct 2008 05:39:37 -0700
> > > > > Subject: [flexdev] Conversão de sistemas de coordenadas
> > > > > From: [EMAIL PROTECTED]
> > > > > To: [email protected]
>
> > > > > Olá pessoal,
>
> > > > > eu sou novo no flex e queria pedir a ajuda de vocês pra o seguinte
> > > > > problema:
> > > > > quero pegar as coordenadas espaciais de um banco de dados e montar o
> > > > > mapa em um cliente flex. Porém essas coordenadas são negativas. Teria
> > > > > como eu montar o mapa sem precisar converter cada ponto que eu recebo
> > > > > do banco de dados?
>
> > > > > No SVG isso é simples, bastando apenas configurar o viewBox que irá
> > > > > exibir o mapa. Por exemplo viewBox="-39.1772 5.8539 4.636 2.6862",
> > > > > onde -39.17 e 5.85 são as coordenadas do ponto superior esquerdo, os
> > > > > outros são respectivamente largura e altura.
>
> > > > > Teria como fazer algo semelhante no flex?
>
> > > > _________________________________________________________________
> > > > Invite your mail contacts to join your friends list with Windows Live
> > > > Spaces. It's
> > > > easy!http://spaces.live.com/spacesapi.aspx?wx_action=create&wx_url=/friend...
>
> > _________________________________________________________________
> > Discover the new Windows
> > Vistahttp://search.msn.com/results.aspx?q=windows+vista&mkt=en-US&form=QBRE
--~--~---------~--~----~------------~-------~--~----~
Você recebeu esta mensagem porque está inscrito na lista "flexdev"
Para enviar uma mensagem, envie um e-mail para [email protected]
Para sair da lista, envie um email em branco para [EMAIL PROTECTED]
Mais opções estão disponíveis em http://groups.google.com/group/flexdev
-~----------~----~----~----~------~----~------~--~---