[JAVA] Je l'ai fait avec le traitement, "Le gars d'Othello live de Sakanaction".

introduction

サカナクションのライブのオセロのやつ "Le gars d'Othello en direct de Sakanaction" est ci-dessus. Ceci est une photo du live Aldebaran 2013. Cela peut être difficile à voir car ce n'est pas clair, mais La figure du chanteur Ichiro Yamaguchi est exprimée sur le fond d'écran en utilisant le recto et le verso d'Othello. Cette fois, je vais vous présenter la procédure pour faire cela avec le traitement!

Au fait, le produit fini fonctionne comme ci-dessous! OthelloScreen

Othello tourne comme ça! demo OthelloScreen

Au fait, qu'est-ce que le traitement?

le traitement est un dessin programmatique. (Référence: Même les débutants en programmation sont d'accord! Faisons de l'art numérique avec Processing) Si vous sélectionnez le mode, vous pouvez écrire en Java, Javascript, Python, etc., ce qui est pratique!

Description du code

[Github] OthelloScreen J'ai publié ce projet de traitement sur Github, alors veuillez vous y référer pour le code complet! Dans cet article, je voudrais résumer les points. Au fait, cette fois, j'ai écrit le mode en Java. C'est assez simple, alors n'hésitez pas à l'utiliser lorsque vous êtes libre!

・ Traitement global

Le flux de traitement est (1) Inverser l'image de la caméra uniquement dans le sens horizontal (celui qui est inclus par défaut dans le traitement appelé Miroir) ② Rendre le pixel de l'image spécifiée clair et sombre ③ Dessinez Othello en remplaçant les valeurs claires et foncées par l'inclinaison d'Othello. est.

・ Réglage de la taille de l'écran d'exécution et d'Othello

int screenWidth = 1280;//checked 640, 1280
int screenHeight = screenWidth*3/4;
int cellSize = 20;

Spécifiez ici la taille de l'écran avec screenWidth (horizontal) et screenHeight (vertical). La taille d'Othello peut être modifiée en modifiant la valeur de cellSize. Cependant, si la valeur est trop petite, le traitement sera lourd et il se déplacera saccadé.

・ Vous pouvez changer la direction en faisant glisser ...

    if(isMouseDragged){
      translate(width/2,height/2,0);
      rotateX(-(mouseY-height/2) / 150.0);
      rotateY((mouseX-width/2) / 200.0);
      translate(-width/2,-height/2,0);
    }

Vous pouvez modifier la direction de la vue en faisant glisser. C'est probablement cool si vous utilisez mieux la bibliothèque.

-Quelles informations de pixel de l'image de la caméra sont traitées et reflètent l'image de la caméra

int loc = (video.width - x - 1) + y*video.width; // Reversing x to mirror the image

Les valeurs des colonnes et des lignes sont déterminées par la taille de l'écran d'exécution et d'Othello. Le pixel qui fait référence à la lumière et à l'obscurité est attribué à loc. À ce moment, l'image de la caméra est retournée horizontalement (cela semble être un processus appelé miroir). Si vous inclinez votre corps vers la gauche en faisant un miroir, De mon point de vue, le corps de l'image est incliné vers la gauche (de mon point de vue de l'image, le corps est incliné vers la droite). Vous pouvez voir la vidéo sans aucune gêne.

-Entrez la valeur clair / foncé de l'image dans la méthode draw_othello

othellos.get(i*(rows) + j).draw_othello(brightness(video.pixels[loc]));

Rendre les informations de couleur dans le pixel uniquement claires et sombres avec la luminosité, J'ai mis des valeurs claires et sombres dans la méthode draw_othello de chaque élément de l'arraylist de la classe Othello.

-Draw_othello méthode de la classe Othello

Avant la méthode draw_othello_shape Spécifiez noir ou blanc et faites pivoter l'Othello.

-Draw_othello_shape méthode de la classe Othello

Puisqu'il n'y a pas de colonne dans la figure de base du traitement, Ce sera long, mais écrivez-le tel quel dans cette méthode.

・ Matrice de poussée et matrice de pop

C'est une méthode que j'utilise partout, Sauvegardez les coordonnées actuelles avec pushMatrix, Les coordonnées enregistrées par popMatrix sont à nouveau développées.

la fin!

C'est la fin de l'explication des principaux points de Othello Screen! s'amuser!

Recommended Posts

Je l'ai fait avec le traitement, "Le gars d'Othello live de Sakanaction".
J'ai fait un blackjack avec du python!
J'ai créé COVID19_simulator avec JupyterLab
J'ai créé Word2Vec avec Pytorch
J'ai créé wordcloud avec Python.
[Je l'ai fait avec Python] Outil pour la sortie par lots de données XML
Jeu de vie avec Python [je l'ai fait] (sur terminal et Tkinter)
Les validateurs W3C ne fonctionnaient pas avec Sublime Text3, alors je l'ai fait fonctionner
J'ai fait une loterie avec Python.
J'ai créé un démon avec Python
J'ai créé un chat chat bot avec Tensor2Tensor et cette fois cela a fonctionné
J'ai fait Othello pour enseigner Python3 aux enfants (4)
Type de téléchargement de partage HTTP réalisé avec Python
J'ai fait un compteur de caractères avec Python
J'ai fait Othello pour enseigner Python3 aux enfants (2)
J'ai fait Othello pour enseigner Python3 aux enfants (5)
J'ai fait une carte hexadécimale avec Python
J'ai fait un jeu de vie avec Numpy
J'ai fait un générateur Hanko avec GAN
J'ai essayé le traitement du langage naturel avec des transformateurs.
J'ai fait un jeu rogue-like avec Python
J'ai fait Othello pour enseigner Python3 aux enfants (3)
J'ai fait un simple blackjack avec Python
J'ai créé un fichier de configuration avec Python
J'ai fait une application WEB avec Django
J'ai fait un simulateur de neurones avec Python
Application Othello (application iOS) réalisée avec Python (Kivy)
J'ai fait un robot de remplacement de tampon avec une ligne
J'ai fait une prévision météo de type bot avec Python.
J'ai créé une application graphique avec Python + PyQt5
J'ai fait mon chien "Monaka Bot" avec Line Bot
J'ai essayé de créer un bloqueur de filles pourries sur Twitter avec Python ①
J'ai essayé le traitement de boucle de type Python avec BigQuery Scripting
[Python] J'ai joué avec le traitement du langage naturel ~ transformers ~
[Python] J'ai créé un téléchargeur Youtube avec Tkinter.
J'ai fait un simple portefeuille de Bitcoin avec pycoin
J'ai créé un Bot LINE avec Serverless Framework!
J'ai fait un graphique de nombres aléatoires avec Numpy
J'ai fait un jeu de cueillette avec Python
Made Mattermost Bot avec Python (+ Flask)
Création d'une application Web qui mappe les informations sur les événements informatiques avec Vue et Flask
Traitement d'image avec Python (j'ai essayé de le binariser en art mosaïque 0 et 1)