Ir ao conteúdo
  • Cadastre-se

Vini Marques Raimundo

Membro Júnior
  • Posts

    7
  • Cadastrado em

  • Última visita

Reputação

1
  1. Criei um programação no DEV C++ onde são criadas 10 matrizes 10x10 referentes aos 1000 LEDS que existem no cubo, preciso fazer um algoritmo para o computador entender que todos os pontos das matrizes são LEDS e que se estão com valor 1 o led tem q ligar e que se estão com valor 0 tem q apagar, me ajudem por favor, isto é urgente. Vou deixar a programação feita no DEV C++ e os prints das matrizes que são criadas com o programa. #include <stdio.h> // biblioteca padrão de entrada e saída #include <stdlib.h> // biblioteca padrão #include <fcntl.h> // biblioteca controle de arquivos para ler a porta serial #include <conio.h> // Biblioteca para funções como getch() e funções graficas #include <math.h> #include<windows.h> #include <time.h> //------------------------------------------------------------------------------ //VARIAVEIS HANDLE hCom; DCB dcb; int porta=1; // Ponteiro para porta cerial char dado[5]; // Variavel para recebimento de dado char Serial_Port[4]; // Variavel para a seleção da porta a ser utilizada char SelecionarForma; char continua; int matriz[10][10][10]; //DECLARA MATRIZ DE 10 LINHAS E 10 COLUNAS char send [14]; int i,j,k; int v1,v2,v3; int a,b,c,d,r; //------------------------------------------------------------------------------ //CONFIGURA PORTA SERIAL. int ConfiguraControle(void) { if(!GetCommState(hCom, &dcb)) { return(0); } dcb.BaudRate = CBR_9600; dcb.ByteSize = 8; dcb.Parity = NOPARITY; dcb.StopBits = ONESTOPBIT; if( SetCommState(hCom, &dcb) == 0 ) { return(0); } return (1); } //------------------------------------------------------------------------------ //Abre a Porta Serial COMx int AbrirPorta(char *NomePorta) { hCom = CreateFile( NomePorta, GENERIC_READ | GENERIC_WRITE, 0, // dispositivos comm abertos com acesso exclusivo NULL, // sem atributos de segurança OPEN_EXISTING, // deve usar OPEN_EXISTING 0, //Entrada e saída sem ovelap. NULL // hTemplate deve ser NULL para comm ); if(hCom == INVALID_HANDLE_VALUE) { return(0); } return (1); } //------------------------------------------------------------------------------ //FUNÇÃO DO PLANO int Plano() { printf("Digite os coeficientes do plano \na:"); scanf("%i", &a); printf("\nb:"); scanf("%i", &b); printf("\nc:"); scanf("%i", &c); printf("\nd:"); scanf("%i", &d); printf("\n\n"); for(i=0;i<10;i++) { for(j=0;j<10;j++) { for(k=0;k<10;k++) { if( a*i + b*j + c*k + d == 0 ) { matriz[i][j][k]=1; printf("1"); } else { matriz[i][j][k]=0; printf("0"); } } printf("\n"); } printf("\n\n\n"); } } //------------------------------------------------------------------------------ //FUNÇÃO DA RETA void Reta() { printf("Digite os coeficientes da reta\na:"); scanf("%i", &a); printf("\nb:"); scanf("%i", &b); printf("\nc:"); scanf("%i", &c); printf("\nv1:"); scanf("%i", &v1); printf("\nv2:"); scanf("%i", &v2); printf("\nv3:"); scanf("%i", &v3); for(i=0;i<10;i++) { for(j=0;j<10;j++) { for(k=0;k<10;k++) { if( (((i-a)/v1) == ((j-b)/v2)) && (((j-b)/v2) == ((k-c)/v3)) ) { matriz[i][j][k]=1; printf("1"); } else { matriz[i][j][k]=0; printf("0"); } } printf("\n"); } printf("\n\n\n"); } } //------------------------------------------------------------------------------ //FUNÇÃO DA ESFERA void Esfera() { printf("Digite o raio da esfera"); printf("\nr:"); scanf("%i", &r); for(i=0;i<10;i++) { for(j=0;j<10;j++) { for(k=0;k<10;k++) { if( ( (i*i) + (j*j) + (k*k) ) <= r*r ) { matriz[i][j][k]=1; printf("1"); } else { matriz[i][j][k]=0; printf("0"); } } printf("\n"); } printf("\n\n\n"); } } //------------------------------------------------------------------------------ //ROTINA PRINCIPAL int main(int argc, char *argv[]) { // Recebe a por5ta que deve conectar printf("\n\nEntre com o nome da porta a ser utilizada : (EX: COM1,COM2 ...)\n\n"); scanf("%s",Serial_Port); AbrirPorta(Serial_Port); ConfiguraControle(); CloseHandle(hCom); porta = open(Serial_Port, O_RDWR); //abrir porta COMX // Trata erro na abertura da porta if (porta == -1) { printf("\n\nImpossivel abrir a porta. Ou porta não encontrada!\n\n"); } else { // Se tudo ocorreu nos conformes limpa a tela e escreve o cabeçalho no arquivo // E informa que a porta selecionada foi conectada com sucesso system("cls"); printf("\nPorta %s Conectada\n\n",Serial_Port); } sleep(1000); //---------------------MENU DE FUNÇÕES------------------------------------------ do { printf("Selecione a forma geometrica desejada" "\n"); SelecionarForma = getche(); if(SelecionarForma=='p') { Plano(); } if(SelecionarForma=='r') { Reta(); } if(SelecionarForma=='e') { Esfera(); } printf("Executar Novamente (s/n)\n\n"); continua = getch(); } while((continua=='s')||(continua=='S')); //------------------------------------------------------------------------------ system("PAUSE"); return 0; }
  2. Quando o programa compila e executa, a rotina principal não segue como deveria, seleciono a porta serial, mas depois ele não executa a parte de selecionar a forma geométrica e já aparece a mensagem para executar novamente, sendo que não foi executado a seleção da forma geométrica. Além da programação, vou deixar um print com o problema também. #include <stdio.h> // biblioteca padrão de entrada e saída #include <stdlib.h> // biblioteca padrão #include <fcntl.h> // biblioteca controle de arquivos para ler a porta serial #include <conio.h> // Biblioteca para funções como getch() e funções graficas #include <math.h> #include<windows.h> #include <time.h> //------------------------------------------------------------------------------ //VARIAVEIS HANDLE hCom; DCB dcb; int porta=1; // Ponteiro para porta cerial char dado[5]; // Variavel para recebimento de dado char Serial_Port[4]; // Variavel para a seleção da porta a ser utilizada char SelecionarForma; char continua; int matriz[10][10][10]; //DECLARA MATRIZ DE 10 LINHAS E 10 COLUNAS int i,j,k; int v1,v2,v3; int a,b,c,d,r; //------------------------------------------------------------------------------ //CONFIGURA PORTA SERIAL. int ConfiguraControle(void) { if(!GetCommState(hCom, &dcb)) { return(0); } dcb.BaudRate = CBR_9600; dcb.ByteSize = 8; dcb.Parity = NOPARITY; dcb.StopBits = ONESTOPBIT; if( SetCommState(hCom, &dcb) == 0 ) { return(0); } return (1); } //------------------------------------------------------------------------------ //Abre a Porta Serial COMx int AbrirPorta(char *NomePorta) { hCom = CreateFile( NomePorta, GENERIC_READ | GENERIC_WRITE, 0, // dispositivos comm abertos com acesso exclusivo NULL, // sem atributos de segurança OPEN_EXISTING, // deve usar OPEN_EXISTING 0, //Entrada e saída sem ovelap. NULL // hTemplate deve ser NULL para comm ); if(hCom == INVALID_HANDLE_VALUE) { return(0); } return (1); } //------------------------------------------------------------------------------ //FUNÇÃO DO PLANO int Plano() { printf("Digite os coeficientes do plano \na:"); scanf("%i", &a); printf("\nb:"); scanf("%i", &b); printf("\nc:"); scanf("%i", &c); printf("\nd:"); scanf("%i", &d); printf("\n\n"); for(i=0;i<10;i++) { for(j=0;j<10;j++) { for(k=0;k<10;k++) { if( a*i + b*j + c*k + d == 0 ) { matriz[i][j][k]=1; printf("1"); } else { matriz[i][j][k]=0; printf("0"); } } printf("\n"); } printf("\n\n\n"); } } //------------------------------------------------------------------------------ //FUNÇÃO DA RETA void Reta() { printf("Digite os coeficientes da reta\na:"); scanf("%i", &a); printf("\nb:"); scanf("%i", &b); printf("\nc:"); scanf("%i", &c); printf("\nv1:"); scanf("%i", &v1); printf("\nv2:"); scanf("%i", &v2); printf("\nv3:"); scanf("%i", &v3); for(i=0;i<10;i++) { for(j=0;j<10;j++) { for(k=0;k<10;k++) { if( (((i-a)/v1) == ((j-b)/v2)) && (((j-b)/v2) == ((k-c)/v3)) ) { matriz[i][j][k]=1; printf("1"); } else { matriz[i][j][k]=0; printf("0"); } } printf("\n"); } printf("\n\n\n"); } } //------------------------------------------------------------------------------ //FUNÇÃO DA ESFERA void Esfera() { printf("Digite o raio da esfera"); printf("\nr:"); scanf("%i", &r); for(i=0;i<10;i++) { for(j=0;j<10;j++) { for(k=0;k<10;k++) { if( ( (i*i) + (j*j) + (k*k) ) <= r*r ) { matriz[i][j][k]=1; printf("1"); } else { matriz[i][j][k]=0; printf("0"); } } printf("\n"); } printf("\n\n\n"); } } //------------------------------------------------------------------------------ //ROTINA PRINCIPAL int main(int argc, char *argv[]) { //------------------------ABRE E CONECTA PORTA SERIAL-------------------------- if(dado!="#")// Testa condição de fim do programa { // Recebe a por5ta que deve conectar printf("\n\nEntre com o nome da porta a ser utilizada : (EX: COM1,COM2 ...)\n\n"); scanf("%s",Serial_Port); AbrirPorta(Serial_Port); ConfiguraControle(); CloseHandle(hCom); porta = open(Serial_Port, O_RDWR); //abrir porta COMX // Trata erro na abertura da porta if (porta == -1) printf("\n\nImpossivel abrir a porta. Ou porta não encontrada!\n\n"); } else { // Se tudo ocorreu nos conformes limpa a tela e escreve o cabeçalho no arquivo // E informa que a porta selecionada foi conectada com sucesso system("cls"); printf("\nPorta %s Conectada\n\n",Serial_Port); } sleep(1); //---------------------MENU DE FUNÇÕES------------------------------------------ printf("Selecione a forma geometrica desejada" "\n"); scanf("%c", &SelecionarForma); if(SelecionarForma=='p') { Plano(); } if(SelecionarForma=='r') { Reta(); } if(SelecionarForma=='e') { Esfera(); } printf("Executar Novamente (s/n)\n\n"); scanf("%c", &continua); system("PAUSE"); return 0; }
  3. Estou usando o Dev-C++, o programa compila normalmente, mas na hora de executar o programa, o mesmo para de funcionar. Segue o programa: #include <stdio.h> // biblioteca padrão de entrada e saída #include <stdlib.h> // biblioteca padrão #include <fcntl.h> // biblioteca controle de arquivos para ler a porta serial #include <conio.h> // Biblioteca para funções como getch() e funções graficas char SelecionarForma; int matriz[10][10][10]; //DECLARA MATRIZ DE 10 LINHAS E 10 COLUNAS int i,j,k; int a,b,c,d; int main(int argc, char *argv[]) { printf("Selecione a forma geométrica desejada" "\n"); scanf("%c", &SelecionarForma); if(SelecionarForma=='R') { printf("Digite os coeficientes""\na:"); scanf("%i", &a); printf("\nb:"); scanf("%i", &b); printf("\nc:"); scanf("%i", &c); printf("\nd:"); scanf("%i", &d); printf("\n\n"); for(i=0;i<10;i++) { for(j=0;j<10;j++) { for(k=0;k<10;k++) { if( a*i + b*j + c*k + d == 0 ) { matriz[i][j][k]=1; printf('0'); } else { matriz[i][j][k]=0; printf('1'); } } printf("\n"); } printf("\n\n\n"); } } system("PAUSE"); return 0; }
  4. Estou me baseando nesse projeto do GeoGebra: https://www.geogebra.org/m/Vg8dD5Kr.
  5. Gostaria de ajuda para fazer uma programação em que a partir de uma equação de reta em 3D transforme-se em uma matriz, com essa matriz pronta eu enviaria para um PIC via serial e o PIC mandaria a matriz para um cubo de 1000 leds, como nunca trabalhei com matrizes ou vetores, então estou um pouco perdido, mesmo achando vários artigos e exemplos.
  6. Galera, estou fazendo como projeto de TCC do SENAI um Cubo de LED's didático, que ajudaria na aprendizagem da Geometria Espacial, porém para funcionar como imaginei, seria necessário construir um cubo X, Y, Z literalmente, com X sendo a linha, Y sendo a coluna e Z sendo a altura, pesquisei muito na internet, mas não encontrei nada que me ajudasse nessa questão, então peço a ajuda de vocês neste projeto, agradeço desde já.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...