Fórum de Matemática
DÚVIDAS? Nós respondemos!

Um Fórum em Português dedicado à Matemática
Data/Hora: 28 mar 2024, 09:36

Os Horários são TMG [ DST ]




Fazer Nova Pergunta Responder a este Tópico  [ 5 mensagens ] 
Autor Mensagem
MensagemEnviado: 25 mai 2017, 21:37 
Offline

Registado: 25 mai 2017, 21:22
Mensagens: 3
Localização: brasilia
Agradeceu: 0 vez(es)
Foi agradecido: 0 vez(es)
Boa noite,
Como eu posso rotacionar a copia de uma reta em 90° graus com base na reta original?

Segue imagem de exemplo:


Anexos:
WhatsApp Image 2017-05-25 at 17.35.04.jpeg
WhatsApp Image 2017-05-25 at 17.35.04.jpeg [ 70.84 KiB | Visualizado 1887 vezes ]
Topo
 Perfil  
 
MensagemEnviado: 26 mai 2017, 10:45 
Offline

Registado: 27 Oct 2015, 15:37
Mensagens: 31
Localização: Lisboa
Agradeceu: 1 vez(es)
Foi agradecido: 1 vez(es)
Fazendo assim: http://imgur.com/a/3UQj7

Julgo que está certo. Mas espere mais respostas!
O que fiz foi rotacionar o segmento de recta. Para isso, uma vez que apenas é 90 graus, substitui os valores de y por y negativos!
Mas também tenho uma dúvida. O que fiz foi rotacionar do 1º quadrante para o quarto quadrante. Mas qual é a direção que se deve aplicar na rotação? Devo ir para o 4º quadrante ou para o 2º quadrante?

Bom estudo


Topo
 Perfil  
 
MensagemEnviado: 26 mai 2017, 13:19 
Offline

Registado: 25 mai 2017, 21:22
Mensagens: 3
Localização: brasilia
Agradeceu: 0 vez(es)
Foi agradecido: 0 vez(es)
@Soprano, estou fazendo isso em um programa, no momento tenho esse calculo, que esta dando problemas.

double deltaX, deltaY;

POINTD pontoCentro;
pontoCentro.x = (ponto2.x + ponto1.x) / 2.0;
pontoCentro.y = (ponto2.y + ponto1.y) / 2.0;

deltaX = abs(pontoCentro.x - ponto1.x);
deltaY = abs(pontoCentro.y - ponto1.y);

double radiansAtual = (DegreesToRadians(90) + atan2(deltaY, deltaX));

pontoResultado1->x = ((deltaX)* cos(radiansAtual)) - ((deltaY)* sin(radiansAtual)) + pontoCentro.x;
pontoResultado1->y = ((deltaX)* sin(radiansAtual)) + ((deltaY)* cos(radiansAtual)) + pontoCentro.y;

deltaX = abs(ponto2.x - pontoCentro.x);
deltaY = abs(ponto2.y - pontoCentro.y);

radiansAtual = DegreesToRadians(270.0) + atan2(deltaY, deltaX);

pontoResultado2->x = ((deltaX)* cos(radiansAtual)) - ((deltaY)* sin(radiansAtual)) + pontoCentro.x;
pontoResultado2->y = ((deltaX)* sin(radiansAtual)) + ((deltaY)* cos(radiansAtual)) + pontoCentro.y;


o que eu estou fazendo é achando o centro da reta, e usando ele para base para cada um dos dois novos pontos.
Acho o ângulo atual da reta original e adiciono 90 graus nele para ficar onde eu quero e 270 no segundo ponto, já que quero no outro quadrante.


Topo
 Perfil  
 
MensagemEnviado: 26 mai 2017, 16:20 
Offline

Registado: 27 Oct 2015, 15:37
Mensagens: 31
Localização: Lisboa
Agradeceu: 1 vez(es)
Foi agradecido: 1 vez(es)
Preciso de rever os meus apontamentos.
Mais logo respondo.
Que programa é que utilizas?


Topo
 Perfil  
 
MensagemEnviado: 26 mai 2017, 17:58 
Offline

Registado: 25 mai 2017, 21:22
Mensagens: 3
Localização: brasilia
Agradeceu: 0 vez(es)
Foi agradecido: 0 vez(es)
Esta em C++, não uso programa, estou fazendo, e essa parte e para traçar uma reta de um nervo ate o osso mais próximo dele


Topo
 Perfil  
 
Mostrar mensagens anteriores:  Ordenar por  
Fazer Nova Pergunta Responder a este Tópico  [ 5 mensagens ] 

Os Horários são TMG [ DST ]


Quem está ligado:

Utilizadores a ver este Fórum: Nenhum utilizador registado e 14 visitantes


Criar perguntas: Proibído
Responder a perguntas: Proibído
Editar Mensagens: Proibído
Apagar Mensagens: Proibído
Enviar anexos: Proibído

Pesquisar por:
Ir para:  
cron