Plan d'attaque pour projet

Salut,
j’ai en tête un projet mais je n’ai aucune idée des outils que je devrais utiliser.
Le projet serait un logiciel qui permettrait de dessiner à partir d’éléments préexistants.
Ca ressemblerait aux éditeurs de cartes des vieux jeux de stratégie où l’on vient peupler une carte vide.

Il faut aussi pouvoir relier les éléments entre eux par des courbes (de bezier ou à main levée).
Si l’on déplace un élément, la courbe reste connectée et se déforme en fonction.

Ca me fait penser à ça: media-cache-ak0.pinimg.com/736x/ … 1830cc.jpg
A la seule différence que les éléments serait des petits dessins.

Voila.
Je me débrouille en C et j’ai fini un projet (moche) en C/GTK+.

Es-ce pour pratiquer ? Ou pour vraiment être utilisé par la suite ?
Avant de te lancer dans un tel projet as tu fait des recherche pour voir ce qui existe déjà et si ça pouvais correspondre a ton besoin ?

Désolé, mais il est préférable d’arrondir une roue, plutôt qu’essayer de la réinventer :wink:

[quote=“Mimoza”]Es-ce pour pratiquer ? Ou pour vraiment être utilisé par la suite ?
Avant de te lancer dans un tel projet as tu fait des recherche pour voir ce qui existe déjà et si ça pouvais correspondre a ton besoin ?

Désolé, mais il est préférable d’arrondir une roue, plutôt qu’essayer de la réinventer :wink:[/quote]
Et le plaisir de la création et celui d’être fier de ses capacités, qu’en fais-tu ? :smiley:

J’ai créé une roue (en bois, avec moyeu et rayons ), justement et j’en suis fier car ça l’a été à partir de ma seule pensée visuelle, sans aucun plan.

Je ne l’oublie pas, c’est pour cela que j’ai poser ma première question. :wink:
Maintenant s’il souhaite se lancer dans la réalisation d’un futur succès du logiciel libre je ne peux que l’encourager. :023
Mais si je peux lui éviter des heures/jours/mois/années de galère pour finalement se rendre compte que ce qu’il souhaite faire est déjà réalisé :unamused:

[quote=“ricardo”]…le plaisir de la création et celui d’être fier de ses capacités…[/quote] Et il y aura aussi l’enrichissement apporté par la découverte des différentes méthodes de recherche de l’existant, l’étude de chaque existant trouvé pour savoir s’il corresponds bien à ce que l’on recherche, et j’en oublie certainement…

J’ai tendance à penser que cette satisfaction et assez moindre par rapport à la production d’un projet fonctionnel.

Et bien merci à tous!
Pour répondre à Mimoza. J’avais commencé un projet C/GTK+ et bien que loin d’être parfait, il est fonctionnel.
Je savais qu’il existait des solutions payantes et bien plus completes mais ce projet m’a vraiment fait progresser et je ne regrette absolument pas.
Par rapport au projet actuel (voir plus bas), si je peux partir de quelque chose d’existant, ça m’arrange. Il faudrait que le programme serve à d’autres à priori bidons en informatique.
Pour répondre à MicP et Dunatotatos, le pire qu’il pourrait m’arriver, serait de partir de quelque chose d’existant pour me rendre compte plus tard que ça va pas le faire et que j’aurai du partir de rien (from scratch).

Le projet actuel servirait à créer des “partitions” pour danser le tango.
Le tango est une danse en couple où l’on se déplace beaucoup. Tout l’interêt de cette danse (à part dans des tangos très chorégraphiques) tient dans la qualité des pas et des changements de directions (grand/petit, fluide/articulé, quel rythme?, etc…).
C’est pour ça que ça me faisait penser à un éditeur de carte pour jeux (Warcraft 3 par exemple). On choisit un objet dans une palette et on le modifie (taille, orientation, forme?, couleur?,…).
Ces objets seraient des lignes qu’il faut pouvoir courber, relier.
A la fin, ça ressemblerait à des rails de trains sinuants avec divers symboles dessus.

Peut être partir d’un logiciel de dessin basique (xpaint)? ou partir de rien et utiliser des librairies telles que pango? ou cairo? Je ne sais pas trop.

P.S: Quand j’aurai un peu la motiv, je retournerai sur mon premier projet pour essayer de le boucler et le poster sur le forum.

Depuis ton premier post, je pense au dessin vectoriel, et là, ça se confirme.

Tu y trouvera toute les fonctionnalités que tu recherche : les courbes vectorielles (bezier) et points d’attache aux objets, etc…

Un simple navigateur Web peut permettre de visualiser le résultat avec zooms sur des zones sans pixellisation.

Il s’agit de simples fichiers texte (langage balisé style XML), donc très vite modifiable par de simples scripts (bash, etc.)

Regarde la syntaxe, les références de base (je pense au SVG W3C), et évite les applications toutes faites qui intègrent souvent des spécificités qui ne sont compatibles qu’avec elles mêmes (et encore… d’une version à l’autre…)

Puisque tu as déjà de bonnes notions et expériences en programmation GTK+, tu va très vite comprendre.

Documente toi en reprenant dans l’ordre chronologique les liens de la page Wikipedia, et en recherchant les références depuis les standards de base.

Help:SVG

Ca à l’air pas mal!
J’ai juste un doute. Le but n’est pas que je puisse créer des SVG mais que j’écrive une appli qui permette à n’importe qui de pondre un dessin propre (via SVG ou non).
Ca veut dire avoir un rendu en temps réel: une page blanche que l’on remplit en temps réel avec des éléments. C’est sur partie là où je manque de pistes.

w3.org/TR/2001/REC-SVG-20010 … ml#minitoc

Liens récupérés à droite, de Help:SVG#Uploading_.26_categorizing :

Interactive SVG (navigateur avec Adobe SVG plugin), mais javascript permet aussi de rendre les éléments cliquables, draggables etc., et je préférerai tout à un “plugin adobe” dans mon navigateur.

Animated SVG

regarde ces animations et leur code source : (zoom/de-zomm si tu veux, plein écran par [mono]F11[/mono] etc.)

Atentat_Djindjic_Arena.svg

ChessCastlingMovie_en.svg

L’intérêt serait aussi :

La possibilité d’utiliser un simple navigateur (moteur de rendu déjà fait, fiable et standardisé)
Indépendance totale du système d’exploitation hôte => Win, Lin, Mac
utiliser les paramètres du navigateur pour adapter le langage des textes affichés,
utiliser les navigateurs des tablettes, smartphones, etc.
utiliser un projecteur vidéo pour afficher l’animation,
des fichiers extrêmement légers => vite transférés, faciles à stocker.
pouvoir améliorer/adapter les objets affichés sans avoir besoin de tout refaire,
zoomer, dé-zoomer, grouper, dégrouper, etc.
imprimer des pages des mouvements,
les fichiers sons pourraient être au format midi, ce qui permettrait d’adapter la vitesse de l’affichage en fonction du rythme musical et vice-versa (synchro, ralentis, pause).
imprimer des partitions (ça existe déjà en libre tout fait avec les fichiers midi)
changer les instruments et adapter les niveaux sonores (ça existe déjà en libre tout avec les fichiers midi)
ajouter, faire créer des fichiers midi par des musiciens (un clavier midi ne coûte pas plus de 100€, et il y a déjà tout chez Linux pour créer ces fichiers midi, demande à un musicien, tu verra, mais tu dois sans doute déjà connaître :wink: )

La première des choses à faire, c’est de diviser le tout en sous-ensembles pour bien définir les limites de ce qu’il y a à faire.
puis de chercher partout tout ce qui existe déjà et en tester le maximum
pour en tirer une liste de ce qui est intéressant comme idées à garder (interfaces, etc.),
et une autre des erreur qu’ils ont déjà fait et qu’il faudra essayer d’éviter de refaire.

Mais il y sans doute des personnes beaucoup plus compétentes que moi, avec une vraie expérience dans la gestion de projet,
qui sauront se manifester pour corriger ce que je dis ou/et proposer des méthodes de travail plus efficaces,
voire plusieurs personnes vu que plusieurs sous-ensembles à créer (modularité).

Remarque perso : J’ai horreur d’essayer de jouer avec des instruments midi, mais pour ce que tu veux faire, avec le SVG en plus, et le tout dans un navigateur, il me semble que c’est exactement ce qu’il te faut.

Dès que tu as parlé de courbe de Bézier j’ai pensé au SVG, et particulièrement à Inkscape. (Je ne sais pas trop s’il a été cité, j’ai lu rapidement le fil).
Non seulement toi et/ les utilisateurs pourront créer les formes, les courbes que vous voulez, les modifier, y mettre de jolies couleurs … mais il y a une fonction connecteur qui permet de lier des formes ensemble.
http://tavmjong.free.fr/INKSCAPE/MANUAL_v14/html_fr/Connectors-Creating.html

Merci à tous pour vos réponses.
L’ampleur du projet me semble démesurée.
Au départ, je ne cherchais pas un logiciel pour dessiner, mais je voulais concevoir un logiciel de toute pièce.
Je projet étant en veille, je garde inkscape sous la main et je vais le proposer à mon pote éventuellement.
A plus.