当前位置:网站首页>Comment dessiner un arc - en - ciel sur le GEC - 6818?

Comment dessiner un arc - en - ciel sur le GEC - 6818?

2021-11-25 17:03:32 Pointeur

1.Drapeau tricolore

La question est plus simple,C'est diviser l'écran en trois, Le bloc de pigment total de l'écran est 800 *480= 384,000‬, Diviser l'écran en trois,C'est chaque

128,000‬Un bloc de couleur pour une couleur.

       
#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <unistd.h>

int main()
{
// Ouvre.LCDFichiers d'écran
int fd = open( "/dev/fb0", O_RDWR | O_CREAT);
if( fd == - 1)
{

printf( "open txt failed\n");
return - 1;
}


// LCD 800*480 v BaidurgbCode couleur 0x ff 80 40
int lcd_buf[ 800 * 480];
//int yello = 0xffff00, black = 0x000, red=0xf44336; // Tous les pixels sont assignés à Orange
int color[ 3] = { 0xffff00, 0x000000, 0xf44336};
int i, j = 0;
for( i = 0; i < 800 * 480; i ++)
{
lcd_buf[ i] = color[ j];
if( i % 128000 == 0){
j ++;
}
}


write( fd, lcd_buf, 800 * 480 * 4);
// fdDescripteur de fichier Pointez vers le fichier où nous allons écrire les données
// buf Données Nous allons écrire les données
// count Nombre Combien d'octets écrivons - nous au plus
close( fd);
return 0;

}


// Pouvez - vous afficher le drapeau tricolore Drapeau allemand Drapeau russe
// Pouvez - vous montrer les sept arcs - en - ciel Sept arcs - en - ciel

  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33.
  • 34.
  • 35.
  • 36.
  • 37.
  • 38.
  • 39.
  • 40.
  • 41.
  • 42.
  • 43.
  • 44.

Résultats

Comment faireGEC-6818 Dessiner un arc - en - ciel sur ?_#include

2. Arc - en - ciel

C'est un peu dur au début , Mais il n'est pas difficile de dessiner une image , Le problème de simplification est de déterminer la distance entre le bloc de pixels et le Centre du cercle , Si la couleur spécifiée est dans la plage spécifiée .

  1. Déterminer le Centre du cercle (400,480)
  2. Délimiter la zone , Le rayon le plus long est 400,Divisé en7Bloc, Plus chaque pièce prend 57, Supposons qu'il y ait un petit cercle au milieu et qu'il n'y ait pas de rayon approximatif 15
  3. La différence de rayon pour chaque cercle concentrique final est 55
  • Le plus loin est 400,Et puis, dans l'ordre,345,290…
  • Sept codes de couleur
    Rouge #FF0000
    Orange #FF7F00
    Jaune #FFFF00
    Vert #00FF00
    Cyan #00FFFF
    Bleu #0000FF
    Violet #8B00FF
  • Les autres sont blancs
       
#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <unistd.h>
#include <math.h>
int main()
{
// Ouvre.LCDFichiers d'écran
int fd = open( "/dev/fb0", O_RDWR | O_CREAT);
if( fd == - 1)
{

printf( "open txt failed\n");
return - 1;
}

/*
Rouge #FF0000
Orange #FF7F00
Jaune #FFFF00
Vert #00FF00
Cyan #00FFFF
Bleu #0000FF
Violet #8B00FF
0xffffff Blanc
*/

// LCD 800*480 v BaidurgbCode couleur 0x ff 80 40
int lcd_buf[ 480][ 800];
int color[ 8] = { 0x8b00ff, 0x0000ff, 0x00ffff, 0x00ff00, 0xffff00, 0xff7f00, 0xff0000, 0xffffff};
int i, j, count = 0; // Notez dans quelle section le bloc de couleur tombe
for( i = 0; i < 480; i ++)
{
for( j =- 400; j < 400 ; j ++)
{
if(( 480 - i) *( 480 - i) + j * j > 400 * 400 || ( 480 - i) *( 480 - i) + j * j < 225){
lcd_buf[ i][ j + 400] = color[ 7];
} else{
count = sqrt(( 480 - i) *( 480 - i) + j * j ) / 55;
lcd_buf[ i][ j + 400] = color[ count];

}
}
}




write( fd, lcd_buf, 800 * 480 * 4);
// fdDescripteur de fichier Pointez vers le fichier où nous allons écrire les données
// buf Données Nous allons écrire les données
// count Nombre Combien d'octets écrivons - nous au plus
close( fd);
return 0;

}


// Pouvez - vous afficher le drapeau tricolore Drapeau allemand Drapeau russe
// Pouvez - vous montrer les sept arcs - en - ciel Sept arcs - en - ciel
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33.
  • 34.
  • 35.
  • 36.
  • 37.
  • 38.
  • 39.
  • 40.
  • 41.
  • 42.
  • 43.
  • 44.
  • 45.
  • 46.
  • 47.
  • 48.
  • 49.
  • 50.
  • 51.
  • 52.
  • 53.
  • 54.
  • 55.
  • 56.
  • 57.
  • 58.
  • 59.
  • 60.
  • 61.

Résultats

Comment faireGEC-6818 Dessiner un arc - en - ciel sur ?_linux_02

版权声明
本文为[Pointeur]所创,转载请带上原文链接,感谢
https://chowdera.com/2021/11/20211125165934081U.html

随机推荐