brahmani 0 Denunciar post Postado Novembro 4, 2008 Então, eu estava tentando criar algo que criava uma grafico do 2º grau... ai achei algo do tipo que gerava uma reta. Então comecei apartir do mesmo a modificar oque queria até que comecou a pintar certas duvidas.. A primeira, seria possivel fazer com que o grafico fosse sendo gerado de acordo com um certo tempo, como se fosse um ponto e este virando uma curva (do grafico), como se fosse sei lá, um shape ou motion tween. A segunda, seria delimitar o espaço do grafico.. a principio pensei em fazer para que desenhasse uma reta branca quando ultrapassase uma certa distancia... porem não deu certo, isso modificando a linha "_root["ponto"+x].lineStyle(3, 0xFF0000, 100);" onde criei condicoes, mas como já havia dito, não deu certo... A principio, as duvidas das quais gostaria de ajuda são as duas acima.. no mais, o codigo está abaixo para terem uma ideia // a = 0.1; b = 0.5; c = 0; // dist_vert = 300; //distancia de que o ponto (0,0) fica do topo da cena dist_hori = 300; //distancia de que o ponto (0,0) fica da lateral esquerda da cena // eixo_vert = 0; //tamanho do eixo y eixo_hori = 0; //tamanho do eixo x // for (i=-100; i<100; i++) { x = dist_hori + i; _root.createEmptyMovieClip("ponto"+x, _root.getNextHighestDepth()); // // O valor de 'y' eh dado para cada valor de x (-100-200), e condicionado pela equacao. // o_nosso_y = Number(a)*(i*i) + Number(b)*i + Number(c); o_nosso_y = (-1)*o_nosso_y + dist_vert; // (-1) para inverter o grafico // //style: espessura, cor(rgb), transparencia(alpha) - existem mais parametros para o style da linha... _root["ponto"+x].lineStyle(3, 0xFF0000, 100); // //se for a primeira vez (primeiro ponto), move-lo para as respectivas coordenadas (o nosso ponto quando x=0) //e nao para (0,0) - Flash default. if (i == -100) { _root["ponto"+x].moveTo(x, o_nosso_y); } else { //desenhar as linhas e usar a coord y do movie anterior como 'starting point' para este clip _root["ponto"+x].moveTo(x_previo, y_previo); //x_previo porque pega o ultimo valor de "x" _root["ponto"+x].lineTo(x, o_nosso_y); // x porque soma sempre 1 a x } // //as coordenadas deste movie para serem usadas no proximo y_previo = o_nosso_y; x_previo = x; } // o arquivo fonte .fla pode pegar no link abaixo também grafico_flash quem souber de algo e puder me ajudar, muito obrigado. vlw flws Compartilhar este post Link para o post Compartilhar em outros sites
Antoniosp 2 Denunciar post Postado Novembro 4, 2008 Olá! Eu já fiz um programinha desses, hehe. Tinha ficado show de bola, se quiser depois eu hospedo e passo um link dele. A minha estratégia foi desenhar tudo dentro de um movieclip só. E ainda usar o (0,0) desse movieclip como o (0,0) da função mesmo. Fazendo uma pequena mudança no seu código: // a = .01; b = 1; c = 10; // dist_vert = 300; //distancia de que o ponto (0,0) fica do topo da cena dist_hori = 300; //distancia de que o ponto (0,0) fica da lateral esquerda da cena // eixo_vert = 0; //tamanho do eixo y eixo_hori = 0; //tamanho do eixo x // _root.createEmptyMovieClip("grafico", _root.getNextHighestDepth()); // _root.grafico._x = dist_hori; _root.grafico._y = dist_vert; //style: espessura, cor(rgb), transparencia(alpha) - existem mais parametros para o style da linha... _root.grafico.lineStyle(3, 0xFF0000, 100); // for (i=-200; i<200; i+=.5) { // // O valor de 'y' eh dado para cada valor de x (-100-200), e condicionado pela equacao. // o_nosso_y = -Number(a)*(i*i) - Number(b)*i - Number(c); // if(i == -200){ _root.grafico.moveTo(i, o_nosso_y); } else { _root.grafico.lineTo(i, o_nosso_y); } // } // Entendeu a diferença? Fica bem mais prático. Aí você pode até colocar uma máscara nesse mc! Ah, eu lembro também que fiz algumas jogadas de escala. Porque tipo, como está agora, cada unidade vale apenas 1 pixel, muito pouco.. Geralmente, no papel, a gente coloca cada unidade como 1 centímetro, e na tela eu acho que uns 30 pixels deve ficar bom... mas vamos ver esse lance de escala depois ;P Abraço Compartilhar este post Link para o post Compartilhar em outros sites
brahmani 0 Denunciar post Postado Novembro 6, 2008 Olá! Eu já fiz um programinha desses, hehe. Tinha ficado show de bola, se quiser depois eu hospedo e passo um link dele. A minha estratégia foi desenhar tudo dentro de um movieclip só. E ainda usar o (0,0) desse movieclip como o (0,0) da função mesmo. Fazendo uma pequena mudança no seu código: // a = .01; b = 1; c = 10; // dist_vert = 300; //distancia de que o ponto (0,0) fica do topo da cena dist_hori = 300; //distancia de que o ponto (0,0) fica da lateral esquerda da cena // eixo_vert = 0; //tamanho do eixo y eixo_hori = 0; //tamanho do eixo x // _root.createEmptyMovieClip("grafico", _root.getNextHighestDepth()); // _root.grafico._x = dist_hori; _root.grafico._y = dist_vert; //style: espessura, cor(rgb), transparencia(alpha) - existem mais parametros para o style da linha... _root.grafico.lineStyle(3, 0xFF0000, 100); // for (i=-200; i<200; i+=.5) { // // O valor de 'y' eh dado para cada valor de x (-100-200), e condicionado pela equacao. // o_nosso_y = -Number(a)*(i*i) - Number(b)*i - Number(c); // if(i == -200){ _root.grafico.moveTo(i, o_nosso_y); } else { _root.grafico.lineTo(i, o_nosso_y); } // } // Entendeu a diferença? Fica bem mais prático. Aí você pode até colocar uma máscara nesse mc! Ah, eu lembro também que fiz algumas jogadas de escala. Porque tipo, como está agora, cada unidade vale apenas 1 pixel, muito pouco.. Geralmente, no papel, a gente coloca cada unidade como 1 centímetro, e na tela eu acho que uns 30 pixels deve ficar bom... mas vamos ver esse lance de escala depois ;P Abraço ou, não estou em casa não, mas qunado eu chegar lá vou dá uma olhada lá, a principio entendi mais ou menos a mudanca que fez, vou testar depois... mas tipo, mesmo assim vou aceitar o link com o programinha, deve ter ficado show mesmo... ou vlw ai e o tremde escala até tinha pensado mesmo... só que pensei mais mesmo pra depois... mas bom saber que vai ter alguem pra pelo menos dá um sinal vlw ai flws depois em casa eu testo e posto o resultado vlw Compartilhar este post Link para o post Compartilhar em outros sites
brahmani 0 Denunciar post Postado Novembro 7, 2008 vi aqui e intendi mais ou menos oque mudou.. porem oque acontece que tenho o eixo pronto em um movie clipe... e da forma que fez, ele move o eixo para baixo, devido ao _root.grafico._(x e/ou y) se não me engano.. ah, queria saber tbm se com a mascara é possivel fazer com que o grafico seja desenhado com o tempo, e não direto com que está... é que de mascara tenho nocao nehuma.. vlw pela forca flw Compartilhar este post Link para o post Compartilhar em outros sites
Antoniosp 2 Denunciar post Postado Novembro 7, 2008 Sobre o desenho dos eixos: é só desenhar os eixos com o (0,0) do desenho exatamente em cima do ponto de registro do movieclip. Sobre a máscara: dá sim, seria só fazer uma máscara animada que comece cobrindo apenas uma parte da esquerda do gráfico e termine cobrindo o gráfico todo. Procure por máscara ou mask aqui no fórum, inclusive no link da minha assinatura. Abraço! Compartilhar este post Link para o post Compartilhar em outros sites
brahmani 0 Denunciar post Postado Novembro 10, 2008 Sobre o desenho dos eixos: é só desenhar os eixos com o (0,0) do desenho exatamente em cima do ponto de registro do movieclip. Sobre a máscara: dá sim, seria só fazer uma máscara animada que comece cobrindo apenas uma parte da esquerda do gráfico e termine cobrindo o gráfico todo. Procure por máscara ou mask aqui no fórum, inclusive no link da minha assinatura. Abraço! Entendido sobre os eixo, porém a duvida sobre a máscara continua...para que possa fazer com que um objeto tenha uma mascara atuando sobre ele, bastaria algo do tipo: //movie_clip1.setMask(movie_clip2); certo? Porém, eu teria que criar um movieclipe que acompanhasse exatamente a curva, que não fosse apenas um quadrado para dá uma melhor aparência, seria possivel fazer da mesma forma que a curva foi criada, porem e o shape que é aplicado sobre este movie clip, como faze-lo pelo action script? Outra duvida é em relação a movie_clip1, qual seria a instancia do mesmo? ponto? Como que ficaria o codigo, em que parte eu deveria mudar para que a mascara fosse aplicada??? Muito obrigado pela ajuda vlw flws Compartilhar este post Link para o post Compartilhar em outros sites
Antoniosp 2 Denunciar post Postado Novembro 10, 2008 Ah, dá pra fazer mais caprichadinho :P Mas fiz um rápido aqui pra você pegar a idéia: http://rapidshare.com/files/162589787/grafico_reta.fla.html Abraço! Compartilhar este post Link para o post Compartilhar em outros sites