Você está aqui: Cards de Engenharia Civil - Fundações |
||
|
||
|
|
||
Delphi ::: Dicas & Truques ::: Aplicativos e Outros |
Como calcular a distância entre dois pontos na terra em DelphiQuantidade de visualizações: 1734 vezes |
|
Nesta dica mostrarei como calcular a distância em quilômetros entre dois pontos na terra dadas suas latitudes e longitudes. Neste exemplo eu coloquei o valor de 6378.137 para o raio da terra, mas você pode definir para o valor que achar mais adequado. O cálculo usado neste código se baseia na Fórmula de Haversine, que determina a distância do grande círculo entre dois pontos em uma esfera, dadas suas longitudes e latitudes. Veja o código Delphi completo:
// função que recebe dois pontos na terra e retorna a distância
// entre eles em quilômetros
function CalcularDistancia(lat1: double; lat2: double; lon1: double;
lon2: double): double;
var
raio_terra, dlon, dlat, a, c: double;
begin
raio_terra := 6378.137; // raio da terra em quilômetros
// o primeiro passo é converter as latitudes e longitudes
// para radianos
// não esqueça de adicionar a unit Math
lon1 := DegToRad(lon1);
lon2 := DegToRad(lon2);
lat1 := DegToRad(lat1);
lat2 := DegToRad(lat2);
// agora aplicamos a Fórmula de Haversine
dlon := lon2 - lon1;
dlat := lat2 - lat1;
a := Power(Sin(dlat / 2), 2) + Cos(lat1) * Cos(lat2)
* Power(Sin(dlon / 2),2);
c := 2 * ArcSin(Sqrt(a));
// e retornamos a distância
Result := (c * raio_terra);
end;
procedure TForm5.Button1Click(Sender: TObject);
var
lat1, lon1, lat2, lon2, distancia: double;
begin
// obtém as coordenadas vindas dos campos de texto
lat1 := StrToFloat(txtPrimeiraLatitude.Text);
lon1 := StrToFloat(txtPrimeiraLongitude.Text);
lat2 := StrToFloat(txtSegundaLatitude.Text);
lon2 := StrToFloat(txtSegundaLongitude.Text);
// vamos calcular a distância entre os dois pontos em Kms
distancia := CalcularDistancia(lat1, lat2, lon1, lon2);
// e mostramos o resultado
txtDistancia.Text := FormatFloat('#.0', distancia) + ' kms';
end;
Ao executar este código Delphi nós teremos o seguinte resultado: Informe a primeira latitude: -16,674551 Informe a primeira longitude: -49,303598 Informe a segunda latitude: -15,579321 Informe a segunda longitude: -56,10009 A distância entre os dois pontos é: 736,9 kms Aqui as informações sobre as latitudes e longitudes vieram de campos de texto TEdit, e o código foi disparado a partir do clique de um botão TButton. Neste exemplo eu calculei a distância entre as cidades de Goiânia-GO e Cuiabá-MT. A latitude é a distância ao Equador medida ao longo do meridiano de Greenwich. Esta distância mede-se em graus, podendo variar entre 0o e 90o para Norte(N) ou para Sul(S). A longitude é a distância ao meridiano de Greenwich medida ao longo do Equador. |
Java ::: Dicas & Truques ::: Strings e Caracteres |
Como excluir uma substring de uma string usando o método delete() da classe StringBuffer do Java - RevisadoQuantidade de visualizações: 7 vezes |
|
Em algumas situações nós gostaríamos de excluir parte de uma palavra ou texto, ou seja, remover uma substring de uma string. Para isso nós podemos usar o método delete() da classe StringBuffer da linguagem Java. Lembrando que a classe StringBuffer, do pacote java.lang, é usada em vez da classe String quando precisamos fazer muitas concatenações e adições ou remoções no conteúdo da string. Veja um exemplo de código no qual removemos parte do conteúdo de um StringBuffer:
package arquivodecodigos;
public class Estudos{
public static void main(String[] args){
StringBuffer frase = new StringBuffer("Gosto muito de Java");
// mostra o conteúdo original
System.out.println("Frase original: " + frase);
String remover = "muito ";
// vamos obter o índice inicial do conteúdo a ser removido
int pos = frase.indexOf(remover);
// e agora vamos remover
frase.delete(pos, pos + remover.length());
// com a remoção
System.out.println("Depois da remoção: " + frase);
System.exit(0);
}
}
Após a execução deste código nós teremos o seguinte resultado: Frase original: Gosto muito de Java Depois da remoção: Gosto de Java |
Java ::: Reflection (introspecção) e RTI (Runtime Type Information) ::: Passos Iniciais |
Java Reflection - Como exibir os nomes de todas as superclasses de uma determinada classe usando introspecção em JavaQuantidade de visualizações: 8206 vezes |
|
Nesta dica veremos como tirar proveito dos métodos getClass(), getName() e getSuperclass() da classe Class da linguagem Java para exibirmos todas as super classes de um determinada classe, até chegarmos à super classe mais alta na hierarquia, ou seja, a classe Object. Note como usamos um objeto da classe Stack para criarmos uma estrutura de dados do tipo pilha que nos permite obter os nomes das super classes e depois exibir os mesmos na ordem inversa. Veja o código completo para o exemplo:
package arquivodecodigos;
import java.util.Stack;
import javax.swing.*;
public class Estudos{
// vamos precisar de uma pilha aqui
static Stack<String> pilha = new Stack();
public static void main(String args[]){
// Exibe todas as superclasses de JPanel
JPanel panel = new JPanel();
obterSuperclasses(panel);
// agora vamos exibir os resultados na ordem
// contrária que eles foram obtidos
int cont = 0;
while(pilha.size() > 0){
// insere espaços antes
String ident = "";
for(int i = 0; i < cont; i++){
ident = ident + " ";
}
System.out.println(ident + pilha.pop());
cont++;
}
System.exit(0);
}
static void obterSuperclasses(Object obj){
// vamos adicionar este valor na pilha
pilha.push(obj.getClass().getName());
Class cls = obj.getClass();
Class superclass = cls.getSuperclass();
while(superclass != null){
String className = superclass.getName();
// vamos adicionar este valor na pilha
pilha.push(className);
cls = superclass;
superclass = cls.getSuperclass();
}
}
}
Ao executarmos este código Java nós teremos o seguinte resultado:
java.lang.Object
java.awt.Component
java.awt.Container
javax.swing.JComponent
javax.swing.JPanel
|
Python ::: Python para Engenharia ::: Geometria Analítica e Álgebra Linear |
Como converter Coordenadas Polares para Coordenadas Cartesianas usando Python - Python para EngenhariaQuantidade de visualizações: 5966 vezes |
|
Nesta nossa série de Python 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 Python completo que recebe as coordenadas polares (r, __$\theta__$) e retorna as coordenadas cartesianas (x, y):
# importamos a biblioteca NumPy
import math as math
def main():
# vamos ler o raio e o ângulo
raio = float(input("Informe o raio: "))
theta = float(input("Informe o theta: "))
graus = input("Theta em graus (1) ou radianos (2): ")
# o theta está em graus?
if graus == "1":
theta = theta * (math.pi / 180.0)
# fazemos a conversão para coordenadas cartesianas
x = raio * math.cos(theta)
y = raio * math.sin(theta)
# exibimos o resultado
print('As Coordenadas Cartesianas são: (x = %0.2f, y = %0.2f)' %(x, y))
if __name__== "__main__":
main()
Ao executar este código 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) |
Java ::: Java para Engenharia ::: Geometria Analítica e Álgebra Linear |
Como calcular a transposta de uma matriz em Java - Java para Geometria Analítica e Álgebra LinearQuantidade de visualizações: 3732 vezes |
|
A matriz transposta de uma matriz A é a matriz AT. Tal matriz é obtida quando copiamos os elementos da matriz A para uma outra matriz (ou para ela mesma) e trocamos de posição as linhas e colunas. Dessa forma, a primeira linha da matriz A se transforma na primeira coluna da matriz transposta, a segunda linha da matriz A se transforma na segunda coluna da matriz transposta e assim por diante. Em termos de notação, podemos dizer, de forma algébrica, que: ATji = Aij Onde i representa as linhas e j representa as colunas, tanto na matriz original quanto na matriz transposta. É importante estar atento à quantidade de linhas e colunas na matriz original e na matriz transposta equivalente. Assim, se a matriz original for 3x2, a matriz transposta será 2x3. Antes de vermos o código Java, dê uma olhada na seguinte matriz de duas linhas e três colunas: \[A = \left[\begin{matrix} 3 & 5 & 7 \\ 1 & 2 & 9 \end{matrix}\right] \] Sua matriz transposta correspondente é: \[A^T = \left[\begin{matrix} 3 & 1 \\ 5 & 2 \\ 7 & 9 \end{matrix}\right] \] E agora veja o código Java que declara uma matriz 2x3 e gera a matriz transposta 3x2:
package arquivodecodigos;
public class Estudos{
public static void main(String args[]){
// vamos declarar e construir uma matrix
// 2x3 (duas linhas e três colunas
int matriz[][] = {{3, 5, 7}, {1, 2, 9}};
// vamos exibir os valores da matriz
System.out.println("Elementos da matriz:");
for(int i = 0; i < matriz.length; i++){
for(int j = 0; j < matriz[0].length; j++){
System.out.printf("%5d ", matriz[i][j]);
}
System.out.println();
}
// como temos uma matriz 2x3, a transposta deverá ser
// 3x2, ou seja, três linhas e duas colunas
int linhas = matriz.length; // linhas da matriz original
int colunas = matriz[0].length; // colunas da matriz original
int transposta[][] = new int[colunas][linhas];
// e agora vamos preencher a matriz transposta
for(int i = 0; i < matriz.length; i++){
for(int j = 0; j < matriz[0].length; j++){
transposta[j][i] = matriz[i][j];
}
}
// vamos exibir os valores da matriz transposta
System.out.println("Elementos da matriz transposta:");
for(int i = 0; i < transposta.length; i++){
for(int j = 0; j < transposta[0].length; j++){
System.out.printf("%5d ", transposta[i][j]);
}
System.out.println();
}
}
}
Ao executar este código Java nós teremos o seguinte resultado:
Elementos da matriz:
3 5 7
1 2 9
Elementos da matriz transposta:
3 1
5 2
7 9
|
Desafios, Exercícios e Algoritmos Resolvidos de Java |
Veja mais Dicas e truques de Java |
Dicas e truques de outras linguagens |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
|
1º lugar: Java |





