![]() |
|
|
Planilha de Dimensionamento de Tubulações
Hidráulicas Água Fria e Água Quente CompletaNossa planilha automática de dimensionamento de tubulações de água fria e quente é uma ferramenta desenvolvida para auxiliar engenheiros e projetistas no cálculo rápido e preciso das redes hidráulicas de edificaçoes. Por meio da inserçao de dados como vazao, diâmetro da tubulaçao, comprimento da rede, material do tubo e coeficientes hidráulicos, a planilha realiza automaticamente os cálculos necessários para verificar velocidade da água, perda de carga e dimensionamento adequado das tubulaçoes. |
||
AutoCAD .NET API C# ::: Dicas & Truques ::: Polyline - Polilinha |
Como selecionar uma polilinha no AutoCAD e mostrar as coordenadas de suas vértices usando a AutoCAD .NET C# APIQuantidade de visualizações: 752 vezes |
|
Em várias situações nós precisamos efetuar cálculos usando os vértices de uma polilinha. Nesta dica eu mostro como podemos pedir para o usuário selecionar uma polilinha na área de desenho do AutoCAD e mostrar as coordenadas x e y de cada um dos vértices. No código abaixo eu trato duas formas de polilinhas no AutoCAD: a polilinha 2D Polyline e a polilinha 3D, representada pelo objeto Polyline3d. Note que as formas de se extrair os vértices desses dois objetos são completamente diferentes. Se a polilinha for 2D, seus vértices são extraído usando-se a função GetPoint2dAt(), que retorna um objeto Point2d. Se a polilinha for 3D, ela será representada por um objeto da classe Polyline3d, e seus vértices são retornados como objetos PolylineVertex3d a partir de uma chamada à função GetObject() da classe Transaction. Veja o código AutoCAD .NET C# API completo para o exemplo:
using System;
using Autodesk.AutoCAD.Runtime;
using Autodesk.AutoCAD.ApplicationServices;
using Autodesk.AutoCAD.DatabaseServices;
using Autodesk.AutoCAD.Geometry;
using Autodesk.AutoCAD.EditorInput;
[assembly: CommandClass(typeof(PluginEstudos.Class1))]
namespace PluginEstudos {
public class Class1 {
[CommandMethod("estudos")]
public void Estudos() {
// vamos obter o documento atual
Document doc = Application.DocumentManager.MdiActiveDocument;
// vamos obter a base de dados
Database db = doc.Database;
// vamos pedir para o usuário selecionar uma polilinha
PromptEntityResult resultado = doc.Editor.GetEntity(
"Selecione uma polilinha: ");
// a seleção foi feita com sucesso
if (resultado.Status != PromptStatus.OK) {
Application.ShowAlertDialog("Nenhum elemento selecionado.");
return;
}
// iniciamos uma transação
using (Transaction trans = db.TransactionManager.StartTransaction()) {
// obtemos a polilinha selecionada
DBObject objeto = trans.GetObject(resultado.ObjectId, OpenMode.ForRead);
// vamos testar se a polilinha é do tipo leve ou otimizada
Polyline polilinha2d = objeto as Polyline;
if (polilinha2d != null) {
// vamos percorrer todos os vértices, um de cada vez
int numero_vertices = polilinha2d.NumberOfVertices;
for (int i = 0; i < numero_vertices; i++) {
// vamos obter um objeto Point2d ou Point3d
Point2d ponto = polilinha2d.GetPoint2dAt(i);
// e escrevemos na janela de comandos
doc.Editor.WriteMessage("\nX = " + ponto.X.ToString("0.00") +
"; Y = " + ponto.Y.ToString("0.00"));
}
}
// é uma polilinha do tipo pesada, ou heavy
else {
Polyline3d polilinha3d = objeto as Polyline3d;
if (polilinha3d != null) {
// percorremos cada um dos vértices
foreach (ObjectId id_vertice in polilinha3d) {
PolylineVertex3d vertice3d = (PolylineVertex3d)trans.GetObject(
id_vertice, OpenMode.ForRead);
// e escrevemos na janela de comandos
doc.Editor.WriteMessage("\nX = " + vertice3d.Position.X.ToString("0.00") +
"; Y = " + vertice3d.Position.Y.ToString("0.00"));
}
}
}
// fechamos a transação
trans.Commit();
}
}
}
}
Ao executar este código AutoCAD .NET C# API nós teremos o seguinte resultado: Command: Selecione uma polilinha: X = 168.91; Y = 159.91 X = 415.17; Y = 126.24 X = 317.08; Y = 24.18 X = 80.53; Y = 104.29 |
C ::: Desafios e Lista de Exercícios Resolvidos ::: Arrays e Matrix (Vetores e Matrizes) |
Exercícios Resolvidos de C - Declare uma matriz de 10 inteiros e use um laço for para preencher os elementos da matriz usando valores aleatórios de 0 até 10Quantidade de visualizações: 12190 vezes |
|
Pergunta/Tarefa: Escreva um programa C que declara uma matriz de 10 inteiros. Use um laço for para preencher os elementos da matriz usando valores aleatórios de 0 até 10 (incluindo os valores 0 e 10). Para finalizar, percorra os elementos da matriz e exiba seus valores. A saída do programa deverá ser parecida com: 3 5 5 1 3 8 10 0 9 7 Resposta/Solução: Veja abaixo a resolução completa para esta tarefa:
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
// vamos inicializar o gerador de números aleatórios
srand(time(NULL));
// vamos declarar e construir uma matriz de 10 inteiros
int valores[10];
// vamos preencher a matriz com valores aleatórios de 0 até 10 (incluindo)
int i;
for(i = 0; i < 10; i++){
valores[i] = rand() % 11;
}
// vamos exibir os valores dos elementos da matriz
for(i = 0; i < 10; i++){
printf("%d ", valores[i]);
}
printf("\n\n");
system("PAUSE");
return 0;
}
Espero que você tenha gostado e continue a acessar a nossa Lista de Exercícios de C. |
Java ::: Desafios e Lista de Exercícios Resolvidos ::: Arrays e Matrix (Vetores e Matrizes) |
Exercícios Resolvidos de Java - Como verificar quantas vezes um valor é encontrado em um vetor - Como usar vetores e matrizes em JavaQuantidade de visualizações: 16572 vezes |
|
Pergunta/Tarefa: Escreva um programa Java que declara, constrói e inicializa um vetor de 10 inteiros. Em seguida peça para que o usuário informe um valor a ser pesquisado. Faça uma varredura no vetor e informe quantas vezes o valor pesquisado é encontrado:
// declara, constrói e inicializa um vetor de 10 inteiros
int valores[] = {4, 21, 9, 8, 12, 21, 4, 4, 1, 10};
Informe um valor: 4 O valor foi encontrado: 3 vezes Informe um valor: 8 O valor foi encontrado: 1 vezes Informe um valor: 3 O valor foi encontrado: 0 vezes Veja a resolução comentada deste exercício usando Java:
package estudos;
import java.util.Scanner;
public class Estudos{
public static void main(String[] args){
// declara, constrói e inicializa um vetor de 10 inteiros
int valores[] = {4, 21, 9, 8, 12, 21, 4, 4, 1, 10};
// para ler a entrada do usuário
Scanner entrada = new Scanner(System.in);
// vamos ler um valor inteiro
System.out.print("Informe um valor: ");
int pesquisa = Integer.parseInt(entrada.nextLine());
// vamos verificar quantas vezes o valor informado está
// contido no vetor
int repeticoes = 0;
for(int i = 0; i < valores.length; i++){
if(valores[i] == pesquisa){
repeticoes++; // encontrou? vamos contar esta ocorrência
}
}
// vamos mostrar o resultado
System.out.println("O valor foi encontrado: " +
repeticoes + " vezes");
}
}
|
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: 12641 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);
}
}
|
Nossas 20 dicas & truques de programação mais populares |
|
JavaScript - Como arredondar um valor numérico de ponto-flutuante para cima usando a função ceil() do objeto Math do JavaScript |
Você também poderá gostar das dicas e truques de programação abaixo |
|
Java - Como converter de octal para decimal usando o método parseInt() da classe Integer da linguagem Java QGIS - Como definir o título do projeto do QGIS usando PyQGIS e a função setTitle() da classe QgsProject |
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 |






