Aplicação: Mapeamento Window - Viewport
UNISAL - Curso Ciência da Computação
Disc. Computação Gráfica
Prof. Aníbal Fernandes
https://sites.google.com/site/wizard2javadevelopers/disciplinas/compgrafica 0.0 0.0 Brasil 2 10.0 -75.0 -40.0 -25.0 0.0 0.0 Acre 195 -7.159011 -73.815461 -7.643388 -72.667303 -7.878596 -71.564967 -8.054850 -70.780627 -8.131879 -70.372760 -9.023582 -68.679190 ---7.237885 -73.774547 -7.193968 -73.811489 -7.159011 -73.815461 0.0 0.0 Alagoas 145 -8.955455 -35.132572 -8.996741 -35.140842 -9.034829 -35.152819 -9.083085 -35.176896 -9.113156 -35.202941 -9.172108 -35.251650 ---8.881404 -35.601458 -8.855130 -35.534099 -8.965972 -35.177618 -8.955455 -35.132572 0.0 0.0 Amapa 187 -1.170590 -51.908608 -1.154013 -51.830914 -0.079379 -51.160673 -0.054431 -51.109492 0.265959 -50.705568 0.360347 -50.629361
Indica um novo polígono
Nome do polígono
Número de pontos do polígono
Retângulo envolvente Total do polígono
Latitude
Longitud
e
Norte Sul OesteLeste
-75
-25
10
- 40
Aula 08
20/03/2012
Aplicação: Mapeamento Window - Viewport
Coordenadas
do Mundo
Coordenadas
de Visualização
UNISAL - Curso Ciência da Computação
Disc. Computação Gráfica
Prof. Aníbal Fernandes
// Autor: Anibal Fernandes ([email protected])
// Descrição: Programa para testar as transformações de coordenadas // do Mundo (World) para coordenadas de visualização (Viewport) public class TestaView {
static double XWmin,XWmax,YWmin,YWmax, // coordenadas do mundo XVmin,XVmax,YVmin,YVmax; // coordenadas ViewPort
public static void main(String args[]) { XWmin=2000.; XWmax=13000.; YWmin=1000.; YWmax=11000.; XVmin=450.; XVmax=750.; YVmin= 50.; YVmax=300.;
double Px[] = new double [10]; double Py[] = new double [10];
int Pxv[] = new int [10]; int Pyv[] = new int [10]; int npt; Px[0]=4000.; Py[0]=2000.0; Px[1]=4000.; Py[1]=6000.0; Px[2]=6000.; Py[2]=7000.0; Px[3]=6000.; Py[3]=9000.0; Px[4]=7000.; Py[4]=10000.0; Px[5]=8000.; Py[5]=9000.0; Px[6]=8000.; Py[6]=7000.0; Px[7]=10000.; Py[7]=6000.0; Px[8]=10000.; Py[8]=2000.0; Px[9]=4000.; Py[9]=2000.0; npt=10; calCoordViewPort(Px,Py,npt,Pxv,Pyv);
for(int i=0; i<npt; i++)
System.out.println(" Px["+ i +"]= " + Px[i] + " --> Pxv[" + i + "]= " + Pxv[i] + " Py["+ i +"]= " + Py[i] + " --> Pyv[" + i + "]= " + Pyv[i]); }
static void calCoordViewPort(double Px[],double Py[],int npt,int Pxv[],int Pyv[]) { for(int i=0; i<npt; i++) {
Pxv[i]= (int)((((Px[i]-XWmin)/(XWmax-XWmin))*(XVmax-XVmin)+XVmin) + 0.5); Pyv[i]= (int)((((Py[i]-YWmin)/(YWmax-YWmin))*(YVmax-YVmin)+YVmin) + 0.5); }
} }
Manipulando Arquivos Textos em Java
import java.io.*;
public class IOBasico
{
public static void main(String args[]) throws IOException
{
File arqIn = new File("IOBasico.java");
File arqOu = new File("IOBasico.bak");
FileReader in = new FileReader(arqIn);
FileWriter out = new FileWriter(arqOu);
int caracter;
System.out.println("Fazendo um BackUp do fonte ...");
while( (caracter = in.read()) != -1)
out.write(caracter);
System.out.println("Arquivo salvo!");
in.close();
out.close();
} // fim do método main( )
} // fim da classe IOBasico
import java.io.*;
class DemoFile {
public static void main (String args[ ] ) {
String arquivo = "DemoFile.java"; // nome do arquivo a ser pesquisado
int contlin = 0, contpal = 0, contcar = 0;
try {
RandomAccessFile file = new RandomAccessFile (arquivo, "r");
boolean linhale = true;
while ( linhale == true ) {
String linha = file.readLine( );
if ( linha == null)
linhale = false;
else {
contlin++;
int espacos = 0;
for ( int posicao=0; posicao < linha.length(); posicao++) {
if( linha.charAt(posicao) == ' ' )
espacos++;
}
contpal = contpal + espacos + 1;
contcar = contcar + linha.length();
}
}
file.close( );
System.out.println ("O arquivo " + arquivo +" contem");
System.out.println (contlin + " linhas");
System.out.println (contpal + " palavras");
System.out.println (contcar + " caracteres");
}
catch ( IOException e) {
System.out.println("Erro! NAO e’ possivel ler o arquivo " + arquivo );
System.exit(1);
}
}
}
import java.io.*;
// processando informações nas linhas de um arquivo.
class
Demofile3
{
public static void
main
(String args[ ])
{
String arquivo = "
idade_alunos.txt
";
// arquivo com matrícula ano
try
// tenta abrir o arquivo, ler dados e fecha-lo
{
// vamos usar uma instancia de RandomAccessFile,
RandomAccessFile file = new RandomAccessFile(
arquivo
,"
r
");
boolean aindatemmais = true;
while
(aindatemmais = = true)
{
String linha = file
.readLine
( );
if
( linha
= =
null)
aindatemmais = false;
else
// se a linha foi lida
{
// 8 primeiros carac = número de matrícula
String mat = linha.
substring
(0,8);
// carac de 9 a 10 são a idade do aluno
String idade = linha.
substring
(9,11);
System.out.print ("
O aluno
" + mat);
System.out.println("
tem
" + idade + "
anos
");
}
}
// fim do while
file.
close()
; // fechar o arquivo
} // fim do bloco try
catch
(IOException e)
{
// imprime mensagem de erro caso não tenha sido
// possível a leitura do arquivo
System.out.println
("
Erro ! Não é possível ler do arquivo
"+arquivo);
System.exit
(1);
// sai com um valor de erro qualquer
}
// fim do bloco
catch
32980004 25
32980017 38
32980022 19
32980045 26
32980055 19
32980078 22
32980080 25
32980081 21
32980087 24
32980099 25
32980121 29
32980125 21
32980141 28
32980133 26
32980142 27
32980148 30
32980153 29
32980161 27
32990001 22
32990007 29
32990010 21
32990012 19
PROJETAR O MODELO ENTIDADE-RELACIONAMENTO (MER) DO SEGUINTE PROBLEMA:
- O Banco de Dados deve armazenar os pontos de cada polígono
- Cada polígono possui uma sigla, um nome, o número de pontos e as
coordenadas geográficas em Latitude e Longitude que o formam.
- A cada dia são registradas queimadas, que são caracterizadas por sua
Latitude, Longitude, Intensidade e a data de sua ocorrência..
- Dada uma queimada há necessidade de informar qual polígono do Brasil
ela pertence, isto é, em qual estado ocorreu a queimada e a data.
- Deseja-se saber o número total de queimadas em cada polígono em um certo dia
use books;
insert into customers values
(NULL, "Julie Smith", "25 Oak Street", "Airport West"), (NULL, "Alan Wong", "1/47 Haines Avenue", "Box Hill"), (NULL, "Michelle Arthur", "357 North Road", "Yarraville"); insert into orders values
(NULL, 3, 69.98, "02-Apr-2000"), (NULL, 1, 49.99, "15-Apr-2000"), (NULL, 2, 74.98, "19-Apr-2000"), (NULL, 3, 24.99, "01-May-2000"); insert into books values
("0-672-31697-8", "Michael Morgan", "Java 2 for Professional Developers", 34.99), ("0-672-31745-1", "Thomas Down", "Installing Debian GNU/Linux", 24.99), ("0-672-31509-2", "Pruitt, et al.", "Teach Yourself GIMP in 24 Hours", 24.99),
("0-672-31769-9", "Thomas Schenk", "Caldera OpenLinux System Administration Unleashed", 49.99); insert into order_items values
(1, "0-672-31697-8", 2), (2, "0-672-31769-9", 1), (3, "0-672-31769-9", 1), (3, "0-672-31509-2", 1), (4, "0-672-31745-1", 3); insert into book_reviews values
("0-672-31697-8", "Morgan's book is clearly written and goes well beyond mos of the basic Java books out there.");
Questões de Banco de Dados
PROBLEMA: Como alimentar o Banco de Dados sem utilizar o método manual? Você seria capa de desenvolver um aplicativo Java que popule o Banco de Dados
Dicas de inserção via arquivo com extensão .sql
Você seria capaz
de explicar este
arquivo e adaptá-lo
ao problema
acima?
PROJETAR O MODELO RELACIONAL (MR) DO PROBLEMA ACIMA - Tabelas, chaves primárias e estrangeiras