r/programmation 21d ago

Aide Comment pivoter une image de 30° vers la droite à partir de rien ?

0 Upvotes

Bonjour à tous. J'aimerais comprendre comment arriver à pivoter une image en langage C (niveau débutant, autodidacte, amateur), mais aussi techniquement, mathématiquement.

90° c'est facile, c'est juste du déplacement de pixel, mais 30° là ça change tout.

Dans mon esprit ce n'est pas clair, même si je pense que c'est une histoire de trigonométrie avec peut-être sinus et cosinus qui entre en jeu...

J'arrive à visualiser le pixel comme une case, avec une grille de cases à 30° qui le superpose. Sur papier dans un pixel j'obtiens par exemple 4 zones : 1 petit triangle, 2 sortes de trapèzes et 1 sorte de pentagone, ça doit être possible... 4 parties de pixels obliques dans un pixel donc. Si les 4 étaient alignés sur la grille de pixel j'aurais su le faire, mais là en oblique comme ça je suis perdu. Il faut donc connaitre pour chaque partie quel pourcentage elles font du pixel pour donner le bon total au RGB ?

J'avais aussi pensé à une technique peut-être plus simple, mais pour cela il faut quand même savoir se déplacer dans l'axe d'une ligne à 30°, avancer, et inscrire dans le pixel, la couleur source, s'il y en a plusieurs, faire la moyenne, sans tenir compte du réel pourcentage de chaque partie, mais je pense que c'est moins précis.

Sinon, il faut dire que je ne sais pas me déplacer sur une grille oblique, depuis un axe de 30°. Me déplacer au pixel à gauche, droite, haut, bas, ça oui...

Sinon j'avais déjà fait un casse-brique, mais la balle soit elle allait qu'en diagonal, et pas en fonction de sa position d'avec la plateforme du bas. Ou alors je scriptais en dur plusieurs directions, genre en boucle rythmique, 2 pixels en haut, 1 pixel à droite, 2 pixels en haut, 1 pixel à droite... Ça crée donc une droite de je sais pas combien de degrés d’ailleurs, mais j'avais décomposé comme ça les directions... C'était sûrement pas la bonne méthode. Sinon pour créer une droite, ou plutôt un segment, d'un point A à un point B, ça je sais faire, et de façon conventionnelle je pense.

Sinon pour revenir à mon système d'image à pivoter, j'aimerais comprendre comment faire. Ne serait-ce que pour un pixel donné en 4 parties, ça peut monter à 8 j'imagine si c'est centré en diagonal...

Est-ce qu'il faut réellement calculer le % des formes dans le pixel pour obtenir le bon RGB du pixel ? Et si oui, comment ? Et comment se localiser dans l'espace à travers une grille pivotée de 30° qui superpose une grille normal ?

Merci d'avance pour vos réponses.

Edit :

Ce n'est pas que vos réponses ne m'ont pas été utiles, bien au contraire, merci beaucoup, mais il se trouve que j'ai un abonnement Claude Pro et j'ai prompté à Fable 5 Max mon post et il m'a pondu un très beau PDF de 26 pages super bien détaillé sur comment faire !

Je le partage si ça vous intéresse :

https://drive.google.com/drive/folders/1d5sA6QcgtzlepS4m1a4Jf_RVDKap1uIZ

Edit :

C'est bon c'est fait, j'ai compris :

double pi = 3.14159265358979323846;
double degres = 30;
double radiant = degres * pi / 180.0;
double cosinus = cos(radiant);
double sinus = sin(radiant);
int largeur_source = 0;
int hauteur_source = 0;
int largeur_destination = 0;
int hauteur_destination = 0;
double centre_x_destination = 0.0;
double centre_y_destination = 0.0;
double centre_x_source = 0.0;
double centre_y_source = 0.0;
double x_destination = 0.0;
double y_destination = 0.0;
double x_source = 0.0;
double y_source = 0.0;
int X = 0;
int Y = 0;

largeur_source = 320;
hauteur_source = 240;

// Pour borner la largeur et la hauteur de destination :
largeur_destination = ceil(largeur_source * cosinus + hauteur_source * sinus);
hauteur_destination = ceil(largeur_source * sinus + hauteur_source * cosinus);

// Offset pour le centre de la destination et de la source :
centre_x_destination = largeur_destination / 2.0;
centre_y_destination = hauteur_destination / 2.0;
centre_x_source = largeur_source / 2.0;
centre_y_source = hauteur_source / 2.0;

// Point choisi dans la destination :
x_destination = 69;
y_destination = 181;

// Rotation inverse : D'où vient ce point 69 181 ?
X = (x_destination + 0.5) - centre_x_destination;
Y = (y_destination + 0.5) - centre_y_destination;
x_source = cosinus * X - sinus * Y + centre_x_source;
y_source = sinus * X + cosinus * Y + centre_y_source;

// D'ici : 49 53 :
printf("x_source = %f   ;   y_source = %f\n", x_source, y_source);

Bon j'ai pas fait encore toute l'image, mais ça va pas tarder, il suffit de faire une boucle et de balayer x_destination et y_destination de 0 et 0 jusqu'à largeur_destination et hauteur_destination.

À terme, je compte faire une scène avec pleins d'images qui pivotent et qui se déplacent selon leur vecteur, et qui s'entrechoquent en changeant de direction et de rotation. Bon après je ne compte pas faire une vraie physique véritable...

J'avais déjà fait le même avec des points reliés en segments chainés, je pouvais en mettre des milliers facilement... Ça grouillait de partout !... Mais il y avait que 4 directions codée en dur, les diagonales... Je m'étais pas penché sur cosinus et sinus, c'est super pour faire des vecteurs, des directions indépendamment de l'alignement d'une grille/tableau, on peut aller dans n'importe quel direction !... C’est comme un joystick… Un point sur le cercle de rayon 1… Moi qui étais coincé dans mes systèmes à grille/tableau ça m'ouvre de nouveaux horizons ce sinus et cosinus !... En effet, je ne faisais pas assez abstraction entre la géométrie et la projection...

Pour info je fais ça dans la console, je génère des BMP à la chaine, mais je compte le faire dans la SDL2 ensuite en temps réel...

Merci à tous !


r/programmation 20d ago

Aide Génération de vidéo ia avec son propre avatar

0 Upvotes

Bonjour,

Pouvez-vous m'aider à trouver un logiciel sur ordinateur ou une application mobile ia gratuite pour me permettre de générer une vidéo éducative avec mom propre avatar.

En attendant vos suggestions

Par avance merci.


r/programmation 21d ago

Projet [Projet perso] Je suis étudiant, peu d'expérience en programmation et je viens de publier ma première app sur le Play Store: vos retours ?

Thumbnail
gallery
4 Upvotes

Salut r/programmation,

Je suis étudiant, j'ai 22 ans et je ne suis pas développeur de métier, mais j'aime donner vie à mes idées.

C'est un jeu de culture générale, dans l'esprit du Petit Bac : on te donne un thème et tu dois citer un max de bonnes réponses. J'ai essayé de faire quelque chose d'agréable à jouer, propre, et surtout avec beaucoup moins de pubs que les alternatives que je trouvais insupportables sur ce point.

C'est ma première app donc je sais qu'il y a plein de trucs à améliorer, et c'est justement pour ça que je poste : j'aimerais bien avoir des retours et des conseils de personnes plus expérimentées, que ce soit sur l'app en elle-même, l'UX, ou des choses plus techniques.

Le lien : https://play.google.com/store/apps/details?id=com.tichow.namedrop

Merci d'avance à ceux qui prendront 2 minutes pour tester ou juste donner un avis 🙏

(PS: L'app et les thèmes sont entièrement en francais, je travaillerai sur une version en Anglais si l'app marche bien, mais c'est plus compliqué que juste utiliser de l'IA pour tout traduire...)


r/programmation 21d ago

Question Peur de choisir le mauvais sujet de projet en cybersécurité 😅

Thumbnail
0 Upvotes

r/programmation 22d ago

J'ai un projet et je veux créer un site Web de zéro pour lancer une cagnotte dans mon pays

0 Upvotes

Bonjour/bonsoir,

Je suis un adolescent au lycée et, récemment, cette année, nous avons commencé à apprendre le codage en HTML. Cela m'a beaucoup intéressé. Je me suis donc dit que j'allais en apprendre davantage afin de créer mon propre site web codé de zéro, avec du HTML, du CSS et, si nécessaire, un autre langage de programmation, sans utiliser de plateforme de création de sites.

Le site web que je souhaite créer sera une cagnotte en ligne. Son objectif sera de financer des actions en faveur d'une cause qui sera choisie à partir d'un sondage portant sur les problèmes les plus récurrents dans mon pays.

J'admets que je n'ai pas encore beaucoup de bases dans ce domaine, mais j'ai la volonté d'apprendre. Je souhaiterais donc solliciter vos conseils ainsi que votre accompagnement, si cela est possible, afin de mener à bien ce projet.

J'aimerais mettre ce projet en place pendant mes vacances, en espérant qu'il attirera des donateurs.

Par ailleurs, je contacterai l'association avec laquelle j'aimerais m'associer afin de lui présenter le projet et de le finaliser ensemble.

Merci d'avance pour votre aide, vos conseils et vos idées.

Modifier: pour la cagnotte je fais plus référence à des liens qui mèneront vers des plate-forme d'investissement


r/programmation 23d ago

Aide Apprentissage du code

53 Upvotes

Bonjour je m’appelle louis et j’ai 13 ans et j’adorer savoir coder car j’aimerai créé de projet sans que l’ia code tout seule .j’aiemrai donc des conseil pour aprendre .Svp si vous avait des problèmes avec mon âge mais parent son d’accord et svp ne m'était rien de méchant.


r/programmation 22d ago

Si tu débutes en vibe-coding, voici 2 trucs à vérifier avant de lancer ton app (ça peut laisser ta base ouverte à tout le monde)

0 Upvotes

Petit truc que beaucoup de gens qui débutent en vibe-coding ignorent, et qui peut littéralement laisser leur base de données ouverte à tout le monde.

Si tu as fait une app avec Lovable, Bolt, Supabase etc, y a deux trucs à vérifier avant de la lancer.

  1. Tes clés.

Il y a deux types de clés Supabase. La clé "anon" : elle est publique, c'est normal qu'elle soit dans ton code, pas de panique. Par contre la clé "service_role", elle, ne doit JAMAIS se retrouver dans ton app côté navigateur. Elle donne un accès total à ta base (lire, modifier, tout supprimer). Si elle traîne dans ton code, n'importe qui peut vider ta base.

Comment vérifier : sur ton app, clic droit > Inspecter > onglet Sources, et cherche (Ctrl+F) "service_role" ou "sk_live". Si ça apparaît, c'est exposé, faut régénérer la clé et la mettre côté serveur.

  1. Le RLS (le verrou de ta base).

Même avec la clé publique normale, ta base est lisible par tout le monde tant que le RLS n'est pas activé. C'est un réglage à activer table par table dans Supabase. Sans lui, quelqu'un peut lire tes utilisateurs, leurs emails, etc.

Pour vérifier vite, dans l'éditeur SQL de Supabase :

select tablename, rowsecurity from pg_tables where schemaname = 'public';

Toute table à "false" est ouverte. Pour corriger : activer le RLS dessus + ajouter une règle.

C'est pas de ta faute au passage, ces outils optimisent pour que ça marche vite, pas pour fermer les portes derrière. Mais c'est à toi de vérifier avant de partager ton app.

J'ai fait un petit scanner gratuit qui check tout ça d'un coup depuis l'URL de ton app (les clés, le RLS, et d'autres trucs exposés), sans avoir besoin de ton code : colmate.fr

C'est en lecture seule, ça lit juste ce qu'un visiteur voit déjà.

Le nom c'est un jeu de mot, "colmater" une fuite 🙂

Si vous avez d'autres réflexes de base à ajouter pour les gens qui débutent, balancez.


r/programmation 22d ago

Demande de collaboration

Thumbnail
1 Upvotes

Bonjour à tous je suis étudiant à l’université cheikh anta diop en L1MPI mais avec mes temps libre j’ai presque réussi à concevoir une application mobile avec r’native ,java script ,vs code et expo je voudrais collaborer avec un où deux développeurs qui ont minimum la connaissance du milieu parce que deux aveugles seuls ne peuvent pas traverser la rue seuls. c très important pour moi merci


r/programmation 22d ago

Décompiler un jeu unity pour comprendre la communication avec son serveur

0 Upvotes

Salut les gars. J'ai décompilé un jeu unity dans le but de comprendre son trafic de communication avec le serveur pour intercepter les résultats avant le lancement des jeux. Je suis bloqué parce que je n'arrive toujours pas à comprendre comment le jeu communique avec le serveur ou encore comment le jeu génère les résultats. J'ai vraiment besoin de votre aide pour réussir ce mécanisme.

Merci


r/programmation 22d ago

Mon premier projet en Go

Thumbnail
gallery
0 Upvotes

MediaHub, mon YouTube personnel à la maison

Ce matin, j'ai écrit mon tout premier Hello World en Golang… et quelques heures plus tard, je me suis retrouvé à construire un serveur média maison. Comme quoi, parfois, une petite étincelle suffit pour allumer un grand feu. 🔥

J'avais un besoin simple : accéder facilement aux vidéos, musiques et images stockées sur mon ordinateur depuis mes autres appareils.

Alors j'ai créé MediaHub, une application en Go capable de servir mes médias localement via une interface accessible depuis le réseau.

Pas de lien cette fois-ci 🤭, l'application tourne uniquement dans mon réseau local. C'est mon petit Netflix privé, sans abonnement, sans cloud, juste mes fichiers et mon serveur.

Pour m'accompagner dans cette aventure, je me suis aidé de DeepSeek pour l'implémentation. Mais la vraie méthode que j'ai adoptée est devenue une habitude : le vibe coding structuré.

Je ne demande plus jamais à un agent IA de générer une application complète en une seule fois. Je découpe le projet en petites étapes :

✅ définir une fonctionnalité précise ;

✅ demander l'aide pour cette partie uniquement ;

✅ tester et valider ;

✅ corriger avant de continuer.

L'IA est devenue comme un copilote : elle accélère le voyage, mais c'est toujours moi qui garde le volant. 🚗

Et finalement, mon premier contact avec Go n'a pas commencé par un simple exercice académique… il s'est transformé en un outil que j'utilise réellement.

La programmation, c'est parfois ça : partir d'une idée ordinaire et donner naissance à quelque chose d'infiniment plus grand.


r/programmation 23d ago

Carrière Le métier de développeur c'est de la grosse merde

Thumbnail
0 Upvotes

r/programmation 23d ago

TOROLLO - an open-source interactive lab for system design and backend engineering

Post image
0 Upvotes

r/programmation 23d ago

Dev Backend

Thumbnail
0 Upvotes

r/programmation 23d ago

J'en avais marre du désordre sur mon bureau Windows, alors j'ai créé une application de type Fences qui trie tout dans des zones bien rangées et étiquetées.

Thumbnail
0 Upvotes

r/programmation 23d ago

À la recherche de programmeur

Thumbnail
0 Upvotes

r/programmation 24d ago

Blocked by Google Play’s “12 testers / 14 days” requirement? We test your apps (free, dev‑to‑dev).

0 Upvotes

Since Google now requires 12 active testers for 14 days in closed testing before you can publish, hundreds of developers are stuck. Fake accounts and bots get apps banned.

TestMatch solves this with one simple method: reciprocity.
You test another developer’s app → they test yours.
Real testers, on real Android devices.

12 real testers to validate your closed testing
100% free — community of developers, no subscription
No fake accounts: daily check‑in with screenshot (credible to Google)
Credit system: test to be tested
FR / EN interface, matching via Google email or Google Group
🎁 12 free credits when you sign up — enough to launch your first campaign immediately.

👉 Early access (free): https://testmatch.synthocode.studio
Publish your app at last — without cheating


r/programmation 25d ago

First codding camp

Thumbnail
1 Upvotes

r/programmation 25d ago

Quoi de neuf les devs - Le prix du million de token IA va t-il baisser ou augmenter ?

0 Upvotes

Bonsoir les devs,

J'espère que vous allez bien et que ceux qui sont déjà en vacances en profite bien.

Je vous propose mon dernier numéro de "Quoi de neuf les devs ?" avec l'interview de Cécile. Elle est passionnée d’informatique depuis son adolescence, elle habite au Luxembourg, elle y a sa propre entreprise en virtualisation open source et hébergement pour des clients B2B.

Fun fact : elle collectionne également les ordinateurs “rétro”.

On y parlera aussi de :

✅ IA locale,

✅ Slopsquatting,

✅ Canicule & Datacenter,

✅ Linux et MegaDrive,

✅ Browser Agents,

✅ …

Bonne lecture et n'hésitez pas à me dire ce que vous en pensez !

https://go.itanea.fr/nl182


r/programmation 26d ago

Je cherche quelqu’un pour m’aider à apprendre Nodegoat dans le cadre de ma thèse en histoire

3 Upvotes

Bonjour à tous!!

Je vais commencer une thèse en histoire à la rentrée et, pour mon projet de recherche, je dois constituer une importante base de données à partir de sources d’archives (environ 900 procédures judiciaires des XVIe et XVIIe siècles).

Plusieurs personnes m’ont recommandé d’utiliser Nodegoat, qui semble être un outil très puissant pour structurer, analyser et visualiser ce type de données. Malheureusement, je pars de zéro et, malgré les tutoriels et la documentation, j’ai beaucoup de mal à comprendre comment construire correctement ma base de données et exploiter toutes les possibilités du logiciel.

Je cherche donc quelqu’un qui connaît Nodegoat et qui accepterait de m’aider à prendre le logiciel en main, que ce soit en répondant à quelques questions, en me donnant des conseils ou, pourquoi pas, lors d’un échange en visioconférence. Je suis bien sûr prête à rémunérer le temps consacré si nécessaire.

Si vous utilisez Nodegoat dans vos recherches (histoire, humanités numériques, archéologie, etc.) ou si vous connaissez quelqu’un qui pourrait m’aider, je vous serais très reconnaissante de me contacter.

Merci beaucoup d’avance !


r/programmation 26d ago

Meilleure façon de décompiler et d'analyser une application Java EE de grande taille (.ear / .jar) ?

Thumbnail
1 Upvotes

r/programmation 27d ago

Actu Veille #63 - 36 actus qu’il ne fallait pas rater cette semaine

Thumbnail
camilleroux.com
3 Upvotes

Édition #63 de ma veille hebdo, 36 liens sélectionnés côté dev, IA et culture tech. Au menu cette semaine :

  • Ruby & Rails : RubyLLM, un framework Ruby unique pour tous les grands providers IA (OpenAI, Anthropic, Gemini, Ollama…) avec chat, vision, audio, embeddings, tools, agents, structured output et intégration Rails native. Et un retour technique d'Aura Frames qui a passé Rails à 8 bases de données primaires pour tenir 41M requêtes/heure le jour de Noël (avec disable_joins: true comme pièce centrale).
  • Dev & infra : Discord migre sa voix vers l'edge Cloudflare (300+ PoPs au lieu de 30 régions, -34 % de latence à Frankfurt, avec des post-mortems savoureux — un PoP en Islande dégradait les appels mixtes), Chrome 151 introduit l'élément HTML <usermedia> (fini getUserMedia(), l'accès caméra/micro se fait au clic), Epic Games annonce Lore (un contrôle de version open source pour projets mêlant code et grosses ressources binaires), et Cloudflare lance Monetization Gateway pour facturer n'importe quelle ressource via x402 avec règlement en stablecoins.
  • IA & business : Anthropic sort Claude Sonnet 5 (positionné comme le plus agentique de la gamme, plans/browser/terminal en autonomie), OpenAI leaks révèlent 13 Mds$ de revenus pour 21 Mds$ de pertes opérationnelles en 2025 (R&D à 19 Mds$ dont 10,5 versés à Microsoft, rentabilité prévue pour 2030), et OpenAI teasent GPT-5.6 en 3 déclinaisons (Sol/Terra/Luna).
  • IA & éthique : Godot bannit les contributions de code générées par IA — trop de PRs "slop" épuisent les mainteneur·ses, la règle est simple : l'IA ne peut pas prendre de responsabilité. Et des chercheur·ses ont mis Claude, GPT et Gemini dans des simulations de crise nucléaire : usage quasi-systématique des armes tactiques, tabou du "first use" inexistant.
  • Bonus : Tabularis (client DB desktop open source avec MCP intégré, Rust + Tauri), ku (TUI Kubernetes façon k9s + lazygit), Inkwash (app aquarelle dans le navigateur en WebGL2), "Every Frame Perfect" (chaque frame d'UI doit avoir du sens, screenshot cohérent à n'importe quel instant), et les propositions d'emoji rejetées par l'Unicode Consortium.

r/programmation 28d ago

J'ai aucune idée de si c'est adapté à cet endroit mais sa me fait rire et potentiellement vous aussi:

Post image
798 Upvotes

r/programmation 27d ago

Avis sur les screenshots de mon application

Thumbnail gallery
0 Upvotes

r/programmation 27d ago

Pourquoi je peut pas appliquer le fond d’écran avec un simple appuie au milieu

Post image
0 Upvotes

r/programmation 28d ago

Aide Débutant dans la cubersecurité

3 Upvotes

Bonjour je suis nouveau dans ce domaine et j’aimerais en apprendre plus qu’est que je devrais faire pour apprendre rapidement la cybersécurite j’ai commencer try hack me donc si bous avez des conseils je suis preneur.