Mafezinha 0 Denunciar post Postado Julho 16, 2008 Olá gente, Preciso da ajuda de vocês: estou tentando fazer alguns comandos básicos do autocad no delphi (eu que esse é um fórum de C, mas como vcs programam jogos, imagino que consigam tirar minha dúvida), e o usuário desenha uma reta e clica em um ponto fora dela, aí preciso traçar a reta perpendicular a essa q ele desenhou, passando por esse ponto. Pelos conceitos de produto escalar e geometria consigo calcular a distância desse ponto à reta, mas não consigo achar o ponto na reta para poder traçar a perpendicular. Vcs podem me ajudar?? Obrigada!! Compartilhar este post Link para o post Compartilhar em outros sites
_Isis_ 202 Denunciar post Postado Julho 16, 2008 você sabe alguma coisa da reta desenhada? Compartilhar este post Link para o post Compartilhar em outros sites
Mafezinha 0 Denunciar post Postado Julho 16, 2008 você sabe alguma coisa da reta desenhada? eu tenho as coordenadas de dois pontos que foram essa reta Compartilhar este post Link para o post Compartilhar em outros sites
_Isis_ 202 Denunciar post Postado Julho 16, 2008 Calcule o coeficiente angular M com os dois pontos que você ja tem da reta desenhada. O coeficiente angular da reta perpendicular é -1/M. você vai ter uma reta s como y = -x/M + b. Substitua o ponto clicado p/ calcular o coeficiente linear da reta s. Depois iguale as duas pra achar x e y. Compartilhar este post Link para o post Compartilhar em outros sites
Mafezinha 0 Denunciar post Postado Julho 17, 2008 Gente...muito obrigada pela ajuda viu!! Consegui fazer =]] vlwsss =]] Compartilhar este post Link para o post Compartilhar em outros sites
quitZAUMMM 18 Denunciar post Postado Julho 17, 2008 Q bom!!! posta ae como conseguiw c possivel! Compartilhar este post Link para o post Compartilhar em outros sites
Mafezinha 0 Denunciar post Postado Julho 21, 2008 pI:= TPonto(ListaRetas.Items[indice]); //Ponto inicial da reta desenhada pF:= TPonto(ListaRetas.Items[indice+1]); //Ponto final da reta desenha m:= (pF.Y - pI.Y) / (pF.X - pI.X); //Coef angular da reta desenhada b1:= pI.Y - ((pI.X)* m); //Coef linear da reta desenhada b2:= pAtual.Y + ((pAtual.X)/m); //Coef linear da reta perpendicular prX:= Round( (b2 - b1) / (m + 1/m) ); prY:= Round( -prX / m + b2 ); Nessas duas ultimas linhas, eu tenho que arredondar o valor encontrado (q nem sempre eh inteiro), pq os pixesl no delphi são inteiros. Ainda não sei como trabalhar com pixels naum inteiros, se alguém souber pra me falar!! Aí é só desenhar uma linha do (pAtual.X, pAtual.Y) até o (prX, prY) encontrado. (pAtual é o ponto externo à reta, por onde eu quero passar a perpendicular) Gente...qq dúvida eh soh me falar, ok?? Vlwssss Compartilhar este post Link para o post Compartilhar em outros sites
Mafezinha 0 Denunciar post Postado Julho 21, 2008 Então esse código acima não é perfeito pq ele ainda não trata qdo m é igual a zero! Ele dah uns paus, mas no geral ele funciona viu!!! Se alguém tiver alguma sugestão para melhorar, posta aki, beleza?? Vlwss gente!!! Compartilhar este post Link para o post Compartilhar em outros sites
_Isis_ 202 Denunciar post Postado Julho 21, 2008 Fia,se m é igual a zero, você tem uma reta horizontal...A perpendicular vai ser x = x1 sendo x1 a abscissa do ponto que foi clicado. Geometria basica... Compartilhar este post Link para o post Compartilhar em outros sites
Mafezinha 0 Denunciar post Postado Julho 22, 2008 Querido, eu não coloquei aki pq eu AINDA não tinha desenvolvido essa parte, mas não significa que eu não saiba fazer!!! Compartilhar este post Link para o post Compartilhar em outros sites
Kandrade 7 Denunciar post Postado Julho 22, 2008 Calma meninas. Está ficando legal seu código, apesar de não ser feito em C ou C++. http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif Querido, eu não coloquei aki pq eu AINDA não tinha desenvolvido essa parte, mas não significa que eu não saiba fazer!!! Compartilhar este post Link para o post Compartilhar em outros sites