Você está aqui: Lisp ::: LISP para Engenharia ::: Geometria Analítica e Álgebra Linear |
Como converter Coordenadas Polares para Coordenadas Cartesianas em LISP - LISP para EngenhariaQuantidade de visualizações: 610 vezes |
Nesta nossa série de LISP e AutoLISP para Geometria Analítica e Álgebra Linear, mostrarei um código 100% funcional para fazer a conversão entre coordenadas polares e coordenadas cartesianas. Esta operação é muito frequente em computação gráfica e é parte integrante das disciplinas dos cursos de Engenharia (com maior ênfase na Engenharia Civil). Na matemática, principalmente em Geometria e Trigonometria, o Sistema de Coordenadas Polares é um sistema de coordenadas em duas dimensões no qual cada ponto no plano é determinado por sua distância a partir de um ponto de referência conhecido como raio (r) e um ângulo a partir de uma direção de referência. Este ângulo é normalmente chamado de theta (__$\theta__$). Assim, um ponto em Coordenadas Polares é conhecido por sua posição (r, __$\theta__$). Já o sistema de Coordenadas no Plano Cartesiano, ou Espaço Cartesiano, é um sistema que define cada ponto em um plano associando-o, unicamente, a um conjuntos de pontos numéricos. Dessa forma, no plano cartesiano, um ponto é representado pelas coordenadas (x, y), com o x indicando o eixo horizontal (eixo das abscissas) e o y indicando o eixo vertical (eixo das ordenadas). Quando saímos do plano (espaço 2D ou R2) para o espaço (espaço 3D ou R3), temos a inclusão do eixo z (que indica profundidade). Antes de prosseguirmos, veja uma imagem demonstrando os dois sistemas de coordenadas: ![]() A fórmula para conversão de Coordenadas Polares para Coordenadas Cartesianas é: x = raio × coseno(__$\theta__$) y = raio × seno(__$\theta__$) E aqui está o código LISP completo que recebe as coordenadas polares (r, __$\theta__$) e retorna as coordenadas cartesianas (x, y): ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- ; programa LISP que converte Coordenadas Polares ; em Coordenadas Cartesianas (let((raio)(theta)(graus)(x)(y)) ; vamos ler o raio e o ângulo (princ "Informe o raio: ") (force-output) (setq raio (read)) (princ "Informe o theta: ") (force-output) (setq theta (read)) (princ "Theta em graus (1) ou radianos (2): ") (force-output) (setq graus (read)) ; o theta está em graus? (if(eq graus 1) (setq theta (* theta (/ pi 180.0))) ) ; fazemos a conversão para coordenadas cartesianas (setq x (* raio (cos theta))) (setq y (* raio (sin theta))) ; exibimos o resultado (format t "As Coordenadas Cartesianas são: (x = ~F, y = ~F)" x y) ) Ao executar este código LISP nós teremos o seguinte resultado: Informe o raio: 1 Informe o theta: 1.57 Theta em graus (1) ou radianos (2): 2 As Coordenadas Cartesianas são: (x = 0,00, y = 1,00) |
![]() |
Lisp ::: Dicas & Truques ::: Matemática e Estatística |
Como calcular MDC em Lisp usando a função GCDQuantidade de visualizações: 781 vezes |
Atualmente a definição de Máximo Divisor Comum (MDC) pode ser assim formalizada: Sejam a, b e c números inteiros não nulos, dizemos que c é um divisor comum de a e b se c divide a (escrevemos c|a) e c divide b (c|b). Chamaremos D(a,b) o conjunto de todos os divisores comum de a e b. Podemos calcular o Máximo Divisor Comum na linguagem Common Lisp usando a função GCD. Esta função aceita um número ilimitado de valores inteiros e retorna seu Máximo Divisor Comum. Veja um trecho de código Common Lisp no qual pedimos para o usuário informar dois números inteiros e, em seguida, fazemos uso da função GCD para retornar o MDC: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- ; variáveis que vamos usar no programa (let ((num1)(num2)(mdc)) ; Vamos ler o primeiro número (princ "Informe o primeiro número: ") ; talvez o seu compilador não precise disso (force-output) ; atribui o valor lido à variável num1 (setq num1 (read)) ; Vamos ler o segundo número (princ "Informe o segundo número: ") ; talvez o seu compilador não precise disso (force-output) ; atribui o valor lido à variável num2 (setq num2 (read)) ; Vamos obter o MDC dos dois números informados (setq mdc (gcd num1 num2)) ; E mostramos o resultado (format t "O Máximo Divisor Comum é: ~D" mdc) ) Ao executarmos este código Common Lisp nós teremos o seguinte resultado: Informe o primeiro número: 9 Informe o segundo número: 12 O Máximo Divisor Comum é: 3 |
Lisp ::: Fundamentos da Linguagem ::: Estruturas de Controle |
Como usar o laço loop para contar de 1 até 10 em LispQuantidade de visualizações: 635 vezes |
A estrutura de repetição loop da linguagem Common Lisp é o laço mais simples fornecido pela linguagem. Este laço nos permite repetir uma ou mais instruções de código repetidamente, até que o comando return seja encontrado, o que faz com que o laço seja interrompido. Veja no trecho de código abaixo como podemos usar o laço loop da Common Lisp para contar e exibir os valores de 1 até 10: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- ( ; vamos declarar a variável que vamos usar let (numero) ; vamos inicializar a variável com o valor 1 (setq numero 1) ; agora iniciamos o laço (loop ; escrevemos o valor da variável (write numero) ; aumentamos o valor da variável em 1 (setq numero (+ numero 1)) ; provocamos uma quebra de linha (terpri) ; e fazemos o teste da continuidade (when (> numero 10) (return)) ) ) Ao executarmos este código Common Lisp nós teremos o seguinte resultado: 1 2 3 4 5 6 7 8 9 10 Veja que usamos a macro when para testar o ponto de parada do laço. Note ainda o uso da função terpri da Common Lisp para provocar uma quebra de linha na saída do programa. |
Lisp ::: Dicas & Truques ::: Trigonometria - Funções Trigonométricas |
Como converter radianos em graus em LISP - Trigonometria em LISPQuantidade de visualizações: 614 vezes |
Todas as funções trigonométricas em Common Lisp (ou AutoLISP, para programadores AutoCAD) recebem seus argumentos em radianos, em vez de graus. Um exemplo disso é a função sin(). Esta função recebe o ângulo em radianos e retorna o seu seno. No entanto, há momentos nos quais precisamos retornar alguns valores como graus. Para isso é importante sabermos fazer a conversão de radianos para graus. Veja a fórmula abaixo: \[Graus = Radianos \times \frac{180}{\pi}\] Agora veja como esta fórmula pode ser escrita em código LISP: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- ; programa LISP que converte radianos em graus (let((radianos)(graus)) ; valor em radianos (setq radianos 1.5) ; obtém o valor em graus (setq graus (* radianos (/ 180 pi))) ; mostra o resultado (format t "~F radianos em graus é ~F" radianos graus) ) Ao executarmos este código LISP nós teremos o seguinte resultado: 1.5 radianos convertidos para graus é 85.94366926962348 Para fins de memorização, 1 radiano equivale a 57,2957795 graus. |
Veja mais Dicas e truques de Lisp |
Dicas e truques de outras linguagens |
Códigos Fonte |
![]() Diga adeus às planilhas do Excel e tenha 100% de controle sobre suas contas a pagar e a receber, gestão de receitas e despesas, cadastro de clientes e fornecedores com fotos e histórico de atendimentos. Código fonte completo e funcional, com instruções para instalação e configuração do banco de dados MySQL. Fácil de modificar e adicionar novas funcionalidades. Clique aqui e saiba mais |
![]() Tenha o seu próprio sistema de controle de estoque web. com cadastro de produtos, categorias, fornecedores, entradas e saídas de produtos, com relatórios por data, margem de lucro e muito mais. Código simples e fácil de modificar. Acompanha instruções para instalação e criação do banco de dados MySQL. Clique aqui e saiba mais |
Linguagens Mais Populares |
1º lugar: Java |