Você está aqui: Cards de Hidrostática |
||
|
||
|
|
||
Java ::: Dicas & Truques ::: Imagens e Processamento de Imagens |
Manipulação de imagens em Java - Como converter uma imagem JPG colorida para uma imagem na escala cinza (gray scale)Quantidade de visualizações: 12364 vezes |
Uma das formas mais comuns de se converter uma imagem colorida para uma imagem na escala cinza (grayscale) é desenhar a imagem colorida em um BufferedImage do tipo TYPE_BYTE_GRAY. Veja o resultado na imagem abaixo:![]() E agora o código completo para o exemplo:
package arquivodecodigos;
import java.awt.*;
import java.io.*;
import java.awt.image.*;
import java.awt.event.*;
import javax.swing.*;
import javax.imageio.*;
public class Estudos extends JFrame{
private BufferedImage imagem;
private BufferedImage imagemCinza;
AreaImagem areaImagem;
public Estudos(){
super("Estudos Java");
Container c = getContentPane();
c.setLayout(new BorderLayout());
JButton btn = new JButton("Carregar Imagem");
btn.addActionListener(
new ActionListener(){
public void actionPerformed(ActionEvent e){
JFileChooser fc = new JFileChooser();
int res = fc.showOpenDialog(null);
if(res == JFileChooser.APPROVE_OPTION){
File arquivo = fc.getSelectedFile();
imagem = null;
try{
imagem = ImageIO.read(arquivo);
}
catch(IOException exc){
JOptionPane.showMessageDialog(null,
"Erro ao carregar a imagem: " +
exc.getMessage());
}
if(imagem != null){
areaImagem.imagem = imagem;
areaImagem.repaint();
}
}
}
}
);
JButton btn2 =
new JButton("Converter Escala Cinza");
btn2.addActionListener(
new ActionListener(){
public void actionPerformed(ActionEvent e){
converterEscalaCinza();
}
}
);
JPanel painel = new JPanel();
painel.setLayout(new FlowLayout());
painel.add(btn);
painel.add(btn2);
c.add(painel, BorderLayout.SOUTH);
// Cria a área de exibição da imagem
areaImagem = new AreaImagem();
c.add(areaImagem, BorderLayout.CENTER);
setSize(400, 300);
setVisible(true);
}
public void converterEscalaCinza(){
imagemCinza = new BufferedImage(
imagem.getWidth(), imagem.getHeight(),
BufferedImage.TYPE_BYTE_GRAY);
Graphics g = imagemCinza.getGraphics();
g.drawImage(imagem, 0, 0, null);
g.dispose();
areaImagem.imagem = imagemCinza;
areaImagem.repaint();
}
public static void main(String args[]){
Estudos app = new Estudos();
app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
// Sub-classe de JPanel para exibir a imagem
class AreaImagem extends JPanel{
public BufferedImage imagem;
public void paintComponent(Graphics g){
super.paintComponent(g);
// desenha a imagem no JPanel
g.drawImage(imagem, 0, 0, this);
}
}
|
Python ::: Dicas & Truques ::: Arrays e Matrix (Vetores e Matrizes) |
Como testar de uma matriz é uma matriz identidade usando PythonQuantidade de visualizações: 1452 vezes |
|
Seja M uma matriz quadrada de ordem n. A matriz M é chamada de Matriz Identidade de ordem n (indicada por In) quando os elementos da diagonal principal são todos iguais a 1 e os elementos restantes são iguais a zero. Para melhor entendimento, veja a imagem de uma matriz identidade de ordem 3, ou seja, três linhas e três colunas: ![]() Veja um código Python completo no qual nós declaramos uma matriz quadrada de ordem 3, pedimos para o usuário informar os valores de seus elementos e no final informamos se a matriz é uma matriz identidade ou não:
# método principal
def main():
n = 3; # ordem da matriz quadrada
matriz = [[0 for x in range(n)] for y in range(n)] # matriz quadrada
identidade = True
# vamos pedir para o usuário informar os elementos da matriz
for i in range(n):
for j in range(n):
matriz[i][j] = int(input("Elemento na linha {0} e coluna {0}: ".format(
(i + 1), (j + 1))))
# agora verificamos se a matriz é uma matriz identidade
for linha in range(n):
for coluna in range(n):
if (matriz[linha][coluna] != 1) and (matriz[coluna][linha] != 0):
identidade = False
break
# agora mostramos a matriz lida
print()
for i in range(n):
for j in range(n):
print(matriz[i][j], end=' ')
print()
if identidade:
print("\nA matriz informada é uma matriz identidade.")
else:
print("\nA matriz informada não é uma matriz identidade.")
if __name__== "__main__":
main()
Ao executar este código Python nós teremos o seguinte resultado: Elemento na linha 1 e coluna 1: 1 Elemento na linha 1 e coluna 2: 0 Elemento na linha 1 e coluna 3: 0 Elemento na linha 2 e coluna 1: 0 Elemento na linha 2 e coluna 2: 1 Elemento na linha 2 e coluna 3: 0 Elemento na linha 3 e coluna 1: 0 Elemento na linha 3 e coluna 2: 0 Elemento na linha 3 e coluna 3: 1 1 0 0 0 1 0 0 0 1 A matriz informada é uma matriz identidade. |
PHP ::: Dicas & Truques ::: Trigonometria - Funções Trigonométricas |
Como obter o valor de PI em PHPQuantidade de visualizações: 9801 vezes |
|
Quando estamos escrevendo códigos que envolvem computação gráfica em PHP, ou até mesmo cálculos de trigonometria, é comum precisarmos do valor de PI (algo em torno de 3,14159...). O PI é o valor da razão entre a circunferência de qualquer círculo e seu diâmetro. A linguagem PHP nos fornece a função pi(), que retorna um valor decimal de alta precisão. Veja no código abaixo como usá-la: <html> <head> <title>Estudos PHP</title> </head> <body> <?php $PI = pi(); echo "O valor de PI é: " . $PI; ?> </body> </html> $PI = pi(); echo "O valor de PI é: " . $PI; ?> Ao executar este código nós teremos o seguinte resultado: O valor de PI é: 3.1415926535898 |
VB.NET ::: VB.NET para Engenharia ::: Geometria Analítica e Álgebra Linear |
Como calcular vetor unitário em VB.NET - VB.NET para Física e EngenhariaQuantidade de visualizações: 720 vezes |
|
Um vetor unitário ou versor num espaço vetorial normado é um vetor (mais comumente um vetor espacial) cujo comprimento ou magnitude é 1. Em geral um vetor unitário é representado por um "circunflexo", assim: __$\hat{i}__$. O vetor normalizado __$\hat{u}__$ de um vetor não zero __$\vec{u}__$ é o vetor unitário codirecional com __$\vec{u}__$. O termo vetor normalizado é algumas vezes utilizado simplesmente como sinônimo para vetor unitário. Dessa forma, o vetor unitário de um vetor __$\vec{u}__$ possui a mesma direção e sentido, mas magnitude 1. Por magnitude entendemos o módulo, a norma ou comprimento do vetor. Então, vejamos a fórmula para a obtenção do vetor unitário: \[\hat{u} = \dfrac{\vec{v}}{\left|\vec{v}\right|}\] Note que nós temos que dividir as componentes do vetor pelo seu módulo de forma a obter o seu vetor unitário. Por essa razão o vetor nulo não possui vetor unitário, pois o seu módulo é zero, e, como sabemos, uma divisão por zero não é possível. Veja agora o código VB.NET que pede as coordenadas x e y de um vetor 2D ou R2 e retorna o seu vetor unitário:
Imports System
Module Program
Sub Main(args As String())
' vamos ler os valores x e y
Console.Write("Informe o valor de x: ")
Dim x = Double.Parse(Console.ReadLine())
Console.Write("Informe o valor de y: ")
Dim y = Double.Parse(Console.ReadLine())
' o primeiro passo é calcular a norma do vetor
Dim norma = Math.Sqrt(Math.Pow(x, 2) + Math.Pow(y, 2))
' agora obtemos as componentes x e y do vetor unitário
Dim u_x = x / norma
Dim u_y = y / norma
' mostra o resultado
Console.WriteLine("O vetor unitário é: (x = " &
u_x & "; y = " & u_y)
Console.WriteLine(vbCrLf & "Pressione qualquer tecla para sair...")
' pausa o programa
Console.ReadKey()
End Sub
End Module
Ao executar este código VB.NET nós teremos o seguinte resultado: Informe o valor de x: -4 Informe o valor de y: 6 O vetor unitário é: (x = -0.5547001962252291; y = 0.8320502943378437 Veja agora uma modificação deste código para retornarmos o vetor unitário de um vetor 3D ou R3, ou seja, um vetor no espaço:
Imports System
Module Program
Sub Main(args As String())
' vamos ler os valores x, y e z
Console.Write("Informe o valor de x: ")
Dim x = Double.Parse(Console.ReadLine())
Console.Write("Informe o valor de y: ")
Dim y = Double.Parse(Console.ReadLine())
Console.Write("Informe o valor de z: ")
Dim z = Double.Parse(Console.ReadLine())
' o primeiro passo é calcular a norma do vetor
Dim norma = Math.Sqrt(Math.Pow(x, 2) + Math.Pow(y, 2) +
Math.Pow(z, 2))
' agora obtemos as componentes x, y e z do vetor unitário
Dim u_x = x / norma
Dim u_y = y / norma
Dim u_z = z / norma
' mostra o resultado
Console.WriteLine("O vetor unitário é: (x = " &
u_x & "; y = " & u_y & "; z = " & u_z)
Console.WriteLine(vbCrLf & "Pressione qualquer tecla para sair...")
' pausa o programa
Console.ReadKey()
End Sub
End Module
Ao executarmos este novo código nós teremos o seguinte resultado: Informe o valor de x: 3 Informe o valor de y: 7 Informe o valor de z: 5 O vetor unitário é: (x = 0.329292779969071; y = 0.7683498199278324; z = 0.5488212999484517 |
C++ ::: Fundamentos da Linguagem ::: Estruturas de Controle |
Como criar um laço for infinito em C++ - C++ do básico ao profissionalQuantidade de visualizações: 9888 vezes |
É possível criar um laço for infinito em C++ simplesmente omitindo as partes início, condição e incremento/decremento. Veja:
#include <string>
#include <iostream>
using namespace std;
int main(int argc, char *argv[])
{
// um laço for infinito (cuidado! se você não
// fornecer uma forma de parar o negócio vai
// travar
int valor = 0;
for(;;){
cout << valor << "\n";
valor++;
// vamos parar o laço aqui
if(valor > 20)
break;
}
cout << "\n\n";
system("PAUSE"); // pausa o programa
return EXIT_SUCCESS;
}
|
Desafios, Exercícios e Algoritmos Resolvidos de C++ |
Veja mais Dicas e truques de C++ |
Dicas e truques de outras linguagens |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
|
1º lugar: Java |






