Java ::: Java para Engenharia ::: Geometria Analítica e Álgebra Linear |
Como converter Coordenadas Cartesianas para Coordenadas Polares usando Java - Java para EngenhariaQuantidade de visualizações: 2689 vezes |
|
Nesta nossa série de Java para Geometria Analítica e Álgebra Linear, mostrarei um código 100% funcional para fazer a conversão entre coordenadas cartesianas e coordenadas polares. 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 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). Já 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__$). Antes de prosseguirmos, veja uma imagem demonstrando os dois sistemas de coordenadas: ![]() A fórmula para conversão de Coordenadas Cartesianas para Coordenadas Polares é: __$r = \sqrt{x^2+y2}__$ __$\theta = \\arctan\left(\frac{y}{x}\right)__$ E aqui está o código Java completo que recebe as coordenadas cartesianas (x, y) e retorna as coordenadas polares (r, __$\theta__$):
package arquivodecodigos;
import java.util.Scanner;
public class Estudos{
public static void main(String args[]){
Scanner entrada = new Scanner(System.in);
// vamos ler as coordenadas cartesianas
System.out.print("Valor de x: ");
double x = Double.parseDouble(entrada.nextLine());
System.out.print("Valor de y: ");
double y = Double.parseDouble(entrada.nextLine());
// vamos calcular o raio
double raio = Math.sqrt(Math.pow(x, 2) + Math.pow(y, 2));
// agora calculamos o theta (ângulo) em radianos
double theta = Math.atan2(y, x);
// queremos o ângulo em graus também
double angulo_graus = 180 * (theta / Math.PI);
// e exibimos o resultado
System.out.println("As Coordenadas Polares são:\n" +
"raio = " + raio + ", theta = " + theta + ", ângulo em graus = " +
angulo_graus);
}
}
Ao executar este código nós teremos o seguinte resultado: Valor de x: -1 Valor de y: 1 As Coordenadas Polares são: raio = 1.4142135623730951, theta = 2.356194490192345, ângulo em graus = 135.0 Veja que as coordenadas polares equivalentes são (__$\sqrt{2}__$, __$\frac{3\pi}{4}__$), com o theta em radianos. Sim, os professores das disciplinas de Geometria Analítica e Álgebra Linear, Física e outras gostam de escrever os resultados usando raizes e frações em vez de valores reais. |
C# ::: Fundamentos da Linguagem ::: Estruturas de Controle |
Tutorial C# - Como usar o laço while (enquanto) da linguagem C#Quantidade de visualizações: 14133 vezes |
O laço while (enquanto) é usado quando queremos repetir uma instrução ou bloco de instruções ENQUANTO uma condição for satisfatória. Veja um exemplo:
static void Main(string[] args){
int valor = 1;
while(valor <= 10){
Console.WriteLine("{0}", valor);
valor++;
}
Console.WriteLine("\n\nPressione uma tecla para sair...");
Console.ReadKey();
}
Este trecho de código conta de 1 até 10. Veja que antes de cada iteração do laço nós testamos se o valor da variável de controle é menor ou igual a 10. A iteração acontece somente se esta condição for satisfeita, o que nos mostra que um laço while pode nunca ser executado (o que aconteceria se a condição fosse falsa já na entrada). Note ainda que dentro de cada iteração nós incrementamos o valor da variável de controle. Isso é feito para que o laço não seja executado infinitamente. Veja um outro exemplo de laço while, desta vez simulando um menu de opções:
static void Main(string[] args){
// variável que registra a opção do usuário
int opcao;
// lê a opção
Console.Write("Informe a opção 1, 2 ou 3" +
" (-1 para sair): ");
// laço while que mostra as opções do menu enquanto
// o valor -1 não for informado
while((opcao = int.Parse(Console.ReadLine())) != -1){
switch(opcao){
case 1:
Console.WriteLine("Executando a opção 1");
break;
case 2:
Console.WriteLine("Executando a opção 2");
break;
case 3:
Console.WriteLine("Executando a opção 3");
break;
default:
Console.WriteLine("Opção incorreta");
break;
}
// mostra o texto das opções novamente
Console.Write("Informe a opção 1, 2 ou 3" +
" (-1 para sair): ");
}
Console.WriteLine("\n\nPressione uma tecla para sair...");
Console.ReadKey();
}
Se você é realmente iniciante em C#, notará que este exemplo é um pouco mais elaborado. Desta forma, estude-o atentamente. É uma técnica muito útil quando estamos escrevendo programas console, uma vez que a maioria deles possui um menu de opções. |
Java ::: Dicas & Truques ::: Mouse e Teclado |
Apostila de Java Swing - Como detectar um duplo-clique do mouse em uma JFrame ou outros controles visuaisQuantidade de visualizações: 12015 vezes |
|
Nesta dica mostrarei como podemos usar o método getClickCount() da classe MouseEvent para detectar o duplo-clique do mouse em uma janela JFrame do Java Swing. É claro que o código pode ser aplicado em qualquer outro componente que herde de JComponent. Veja o código completo para o exemplo:
package arquivodecodigos;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class Estudos extends JFrame{
public Estudos() {
super("Eventos do Mouse e Teclado");
Container c = getContentPane();
FlowLayout layout = new FlowLayout(FlowLayout.LEFT);
c.setLayout(layout);
this.addMouseListener(
new MouseAdapter(){
@Override
public void mouseClicked(MouseEvent e){
if(e.getClickCount() == 2){
setTitle("Duplo-clique detectado.");
}
else{
setTitle("Clique simples detectado.");
}
}
}
);
setSize(350, 250);
setVisible(true);
}
public static void main(String args[]){
Estudos app = new Estudos();
app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
|
Rust ::: Dicas & Truques ::: Strings e Caracteres |
Como testar se uma string é um valor numérico em Rust usando a função is_numeric()Quantidade de visualizações: 1016 vezes |
|
Nesta dica mostrarei como podemos verificar se uma string possui um valor numérico válido, ou seja, é composta apenas pelos dígitos de 0 a 9. Note que criei uma função validar_string_numerica() que recebe a string e retorna um valor bool, indicando se a string é um valor númerico válido ou não. Note também o uso do método is_numeric() do tipo char para testar os caracteres individuais da string. Veja o código Rust completo para o exemplo:
// função principal do programa Rust
fn main() {
// vamos declarar uma string
let numero = "3a2221";
// vamos testar se a string é numérica
if validar_string_numerica(numero.to_string()){
println!("A string {} é numérica", numero);
}
else{
println!("A string {} não é numérica", numero);
}
}
// função quer permite verificar se uma string
// possui um valor numérico válido
fn validar_string_numerica(str: String) -> bool {
// vamos varrer os caracteres da string
for c in str.chars() {
// o caractere atual não é numérico?
if !c.is_numeric() {
return false;
}
}
// se chegou até aqui, a string é numérica
return true;
}
|
Você também poderá gostar das dicas e truques de programação abaixo |
|
C - Como comparar os primeiros n caracteres de duas strings usando a função strncmp() da linguagem C VB.NET - Como retornar a versão do .NET a partir de seus códigos VB.NET usando Environment.Version.ToString() JavaScript - Como usar objetos Set em seus códigos JavaScript |
Nossas 20 dicas & truques de programação mais recentes |
Últimos Projetos e Códigos Fonte Liberados Para Apoiadores do Site |
|
Python - Como criar o jogo Pedra, Papel, Tesoura em Python - Jogo completo em Python com código comentado |
Últimos Exercícios Resolvidos |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
|
1º lugar: Java |






