Page 6 sur 7
Re: MindMap (Organiser des idées)
Publié : mer. 27/juin/2012 21:03
par Mindphazer
falsam a écrit :Merci d'avoir tester. Je change le nom du fichier de langue française pour la prochaine version. (french.txt)
Pas de problème, c'est avec plaisir
Si j'ai le temps (et le courage), j'essaierai de faire des tests par rapport à cette histoire de "ç", vu que j'ai les 2 plateformes
Je me doute que tu as d'autres chats à fouetter...
Re: MindMap (Organiser des idées)
Publié : lun. 02/juil./2012 9:17
par falsam
Le source de La version 1.90 est disponible au téléchargement (Voir 1er message)
Ayant eu besoin d'un tableau, j'ai ajouter l'entité
tableau.
Le fonctionnement est simple. Une fois l'entité ajouté, passer en mode édition (Ctrl+Entrée) puis taper les élements de votre tableau en insérant le caractére
";" entre chaque cellule du tableau. La 1er ligne sera l'entête du tableau.
-La marge gauche est réglable depuis l'éditeur d'entité.
-Le centrage ne fonctionnera pas bien que présent dans l'inspecteur.
-Les nombres sont automatiquement cadrés à droite.
-Ce tableau peut aussi servir à créer une liste en ne mettant pas le séparateur ";".
N'hésitez pas à ouvrir l'exemple se trouvant dans le dossier ......exemple

Re: MindMap (Organiser des idées)
Publié : lun. 02/juil./2012 9:24
par dayvid
P'tin Falsam, tu m'épate

Re: MindMap (Organiser des idées)
Publié : lun. 02/juil./2012 17:48
par venom
Bonjour,
ça avance bien, Bravo falsam. Bonne continuation.
@++
Re: MindMap (Organiser des idées)
Publié : lun. 02/juil./2012 18:07
par Kwai chang caine
Ca deviens un avion ton truc

Re: MindMap (Organiser des idées)
Publié : ven. 20/juil./2012 14:47
par falsam
Sur
ce post, G-Rom fourni une procédure géniale permettant de calculer le point du milieu entre deux vecteurs. Cette procédure va m'aider à placer maintenant du texte sur une relation parent -> Enfant.
J'aimerais aussi pouvoir placer du texte dans l'axe de deux points en utilisant cette fonction DrawRotatedText(x, y, Texte$, Angle.f [, Couleur]) mais je ne sais pas comment calculer un angle entres deux points.
Re: MindMap (Organiser des idées)
Publié : ven. 20/juil./2012 15:01
par G-Rom
Avec Atan2() :
Radian.f = ATan2(x1-x2,y1-y2)
Degree.f = (ATan2(x1-x2,y1-y2) * 180 / #PI) + 180
Code : Tout sélectionner
x1.f = 500
y1.f = 500
For angle = 0 To 359
x2.f = x1 + 100 * Cos(angle * #PI / 180)
y2.f = y1 + 100 * Sin(angle * #PI / 180)
AngleCalcul.f = (ATan2(x1-x2,y1-y2) * 180 / #PI)+180
Debug "Angle véritable : " + Str(angle) + " Angle Atan2() = " + Str(AngleCalcul)
Next
@++
Re: MindMap (Organiser des idées)
Publié : ven. 20/juil./2012 15:02
par Mindphazer
J'ai trouvé cette formule (en C)
double x1, x2, y1, y2;
x1 = 2*cos(pi/6);
y1 = 2*sin(pi/6);
x2 = 3*cos(pi/2);
y2 = 3*sin(pi/2);
printf("x1 = %f\ty1 = %f\n", x1, y1);
printf("x2 = %f\ty2 = %f\n", x2, y2);
printf("angle entre les deux : %lf = %lf\n", atan(y2/x2)-atan(y1/x1), pi/3);
[Edit] : grillé par G-Rom....
Re: MindMap (Organiser des idées)
Publié : ven. 20/juil./2012 19:18
par falsam
Merci G-Rom et Mindphazer. Un peu de code pour voir le résultat dans lequel je trace deux segment et du texte qui va suivre ces deux segments.
Code : Tout sélectionner
Enumeration
#Mainform
EndEnumeration
Define.l Event
Global WindowStyle.i=#PB_Window_MinimizeGadget|#PB_Window_MaximizeGadget|#PB_Window_ScreenCentered
Structure vector2f
x.f
y.f
EndStructure
Procedure.i NewVector2f(x.f = 0 ,y.f = 0)
*v.vector2f = AllocateMemory(SizeOf(vector2f))
If *v
*v\x = x
*v\y = y
ProcedureReturn *v
Else
ProcedureReturn #Null
EndIf
EndProcedure
Procedure FreeVector2f(*v.vector2f)
If *v <> #Null
FreeMemory(*v)
EndIf
EndProcedure
Procedure.i midPoint(*a.vector2f, *b.vector2f)
*v.vector2f = AllocateMemory(SizeOf(vector2f))
If *v
*v\x = ( *a\x + *b\x ) * 0.5
*v\y = ( *a\y + *b\y ) * 0.5
ProcedureReturn *v
Else
ProcedureReturn #Null
EndIf
EndProcedure
; vive les macros...
Macro position(v)
v\x,v\y
EndMacro
Procedure Open_MainForm()
OpenWindow(#Mainform, 0, 0, 500, 300, "Texte", WindowStyle)
StartDrawing(WindowOutput(#Mainform))
;1er segment
*A.vector2f = NewVector2f(100 , 100)
*B.vector2f = NewVector2f(200 , 250)
*MidPoint.vector2f = MidPoint(*A, *B)
Circle(position(*A),2,0)
Circle(position(*B),2,0)
Circle(position(*MidPoint), 4, $FF)
LineXY(position(*A), Position(*B), RGB(105, 105, 105))
AngleCalcul.f = (ATan2(*a\x-*b\x, *a\y-*b\y) * 180 / #PI)+180
DrawRotatedText(Position(*A), "Lorem ipsum dolor amet", AngleCalcul*-1, RGB(255, 0, 0))
;2eme segment
*C.vector2f = NewVector2f(450 , 20)
*MidPoint.vector2f = MidPoint(*B, *C)
Circle(position(*C),2,0)
Circle(position(*MidPoint), 4, $FF)
LineXY(position(*B), Position(*C), RGB(105, 105, 105))
AngleCalcul.f = (ATan2(*B\x-*C\x, *B\y-*C\y) * 180 / #PI)+180
DrawRotatedText(Position(*B), "Lorem ipsum dolor amet consectetur adipiscing", AngleCalcul*-1, RGB(255, 0, 0))
StopDrawing()
FreeVector2f(*A)
FreeVector2f(*B)
FreeVector2f(*C)
EndProcedure
Open_MainForm()
Repeat
Event = WaitWindowEvent(10)
Select Event
Case #PB_Event_Gadget
Case #PB_Event_CloseWindow
End
EndSelect
ForEver
Re: MindMap (Organiser des idées)
Publié : ven. 20/juil./2012 19:55
par G-Rom
DrawRotatedText() à vraiment un rendu cradingue...
toute les lettres sont décalée.
sinon ton projet à l'air sympa ^^
Re: MindMap (Organiser des idées)
Publié : lun. 25/févr./2013 12:07
par blendman
salut Falsam
Bravo pour tout ce boulot, c'est vraiment très sympa, et cet outil (mindmap) pourrait m'être utile très bientôt
Sinon, j'ai regardé ton code, et niveau enumeration, tu as fait ce que fred a dit qu'il fallait éviter c'est à dire tout mélanger (fenêtre, gadget, menu, image, etc..)
ce n'est pas trop gênant pour le moment, car le programme n'est pas trop gros, mais s'il grossissait ça pourrait le devenir ^^.
En tout cas, bravo encore

.
Re: MindMap (Organiser des idées)
Publié : mar. 26/févr./2013 10:11
par falsam
blendman a écrit :Sinon, j'ai regardé ton code, et niveau enumeration, tu as fait ce que fred a dit qu'il fallait éviter c'est à dire tout mélanger (fenêtre, gadget, menu, image, etc..)
Bonjour Blendman. On pourrait penser que tout est mélangé. L'énumération est dans l'ordre des fenêtres et largement documentée comme tu as pu le voir. Je vais néanmoins tacher de remédier d'y remédier dans une nouvelle version. Merci pour cette remarque.
En attendant, le code provoquant 5 erreurs de compilation avec la version 5.10 de Pure Basic, j'ai modifié le code en conséquence. (Correction sur les pointeurs et sur les comparaison de string).
Les erreurs étant mineur, Je n'ai pas changé le numéro de version du code que vous pouvez télécharger depuis le premier message.
Re: MindMap (Organiser des idées)
Publié : jeu. 25/juin/2015 11:01
par falsam
La fonction CreateXMLNode() des versions antérieures de PureBasic n'étant plus compatible avec la version 5.31 de Pure Basic, le code de MinMap est modifié.
Re: MindMap (Organiser des idées)
Publié : jeu. 25/juin/2015 11:56
par majikeyric
Merci falsam,
je ne connaissais pas ton outil, faut que je le teste, il m'a l'air bien cool! (et très propre comme tout ce que tu fais

).
Re: MindMap (Organiser des idées)
Publié : jeu. 25/juin/2015 12:26
par Kwai chang caine
Ouai...c'est un super code...un boulot de ouf
Un peu compliqué pour kcc...mais splendide, il doit le reconnaître
Merci de la maj
Ca pourrait me servir le jour ou je comprendrais le code
