FRACTALIS 4 : ALGO. DE REMPLISSAGE ET POO EN VB .NET

cs_Patrice99 Messages postés 1221 Date d'inscription jeudi 23 août 2001 Statut Membre Dernière intervention 9 septembre 2018 - 17 févr. 2003 à 11:33
TeBeCo Messages postés 467 Date d'inscription lundi 24 juin 2002 Statut Membre Dernière intervention 9 mars 2011 - 14 avril 2007 à 13:07
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/5826-fractalis-4-algo-de-remplissage-et-poo-en-vb-net

TeBeCo Messages postés 467 Date d'inscription lundi 24 juin 2002 Statut Membre Dernière intervention 9 mars 2011
14 avril 2007 à 13:07
de rien :)
cs_Patrice99 Messages postés 1221 Date d'inscription jeudi 23 août 2001 Statut Membre Dernière intervention 9 septembre 2018
14 avril 2007 à 08:07
Merci, mais je suis en train de corriger cette source et j'ai tout simplement enlevé les thread, car dans plusieurs bouquins j'ai trouvé que les thread était déconseillés avec le GDI (alors que pourtant c'était une démo d'animation multithread en GDI qui m'avais donnée l'idée d'utiliser les threads). Au final, les threads ne servent à rien du tout ici, un simple DoEvents à intervalle régulier suffit à traiter les événements de l'interface, et cela marche parfaitement maintenant (c'est vrai qu'en DotNet2, le bug du thread devient problématique, mais cela n'apparaissait pas en DotNet1).
Mais je suis en train aussi de deboguer un système qui combine en POO les QuadTree et l'algo de remplissage de façon à tracer plus rapidement les fractales, mais il y a encore un petit bug de précision (anomalie des pixels), à suivre donc.
TeBeCo Messages postés 467 Date d'inscription lundi 24 juin 2002 Statut Membre Dernière intervention 9 mars 2011
14 avril 2007 à 01:24
protection thread safe a rajouté (quand je click droit pour le panneau de reglage ca plante) :

dans le fichier =>FrmConfig.vb :

Public WriteOnly Property iAvancement%()
...Set(ByVal iVal%)
......Me.pbAvancement.Value = Math.Min(iVal, 100) ' pb : ProgressBar
...End Set
End Property

===================A remplacer par ====================
Public WriteOnly Property iAvancement%()
...Set(ByVal iVal%)
......SetpbAvancementValue(iVal)
...End Set
End Property

Private Delegate Sub SetpbAvancementValueCallBack(ByVal iVal%)

Private Sub SetpbAvancementValue(ByVal iVal%)
...If Me.pbAvancement.InvokeRequired Then
......Dim dlg As New SetpbAvancementValueCallBack(AddressOf SetpbAvancementValue)
......Me.Invoke(dlg, New Object() {iVal})
...Else
......Me.pbAvancement.Value = Math.Min(iVal, 100) ' pb : ProgressBar
...End If
End Sub



(dsl pour les "." je me rapelle jamais si il vire les espace tout seul ou pas)
cs_Patrice99 Messages postés 1221 Date d'inscription jeudi 23 août 2001 Statut Membre Dernière intervention 9 septembre 2018
12 juil. 2005 à 13:14
Pour info, Fractalis est actuellement mon seul logiciel .Net dont le bytecode fonctionne tel quel sous Mono (donc sous linux !), affaire à suivre pour mes autres logiciels...
www.go-mono.com/archive/1.1.8/windows/mono-1.1.8-gtksharp-1.9.5-win32-0.0.exe
cs_Geff Messages postés 192 Date d'inscription vendredi 2 mars 2001 Statut Membre Dernière intervention 10 janvier 2006
29 avril 2003 à 20:37
kool sympa comme code je vais le prendre comme base pour voir a quoi ressemble le VB.net, ca me tente bien, mais le probleme c'est que j'ai windows 98 SE et que le SDK ne fonction pas sur ce systeme! Donc passage obligé a 2000! M'enfin! Mandelbrot je l'ai vu en vrai, a une conférence, chouette gar bien sympa! ;)
cs_Patrice99 Messages postés 1221 Date d'inscription jeudi 23 août 2001 Statut Membre Dernière intervention 9 septembre 2018
27 mars 2003 à 11:58
Contrairement à ce que j'avais indiqué, c'est le SDK qui n'est disponible que pour Windows NT/XP, le runtime .NET lui est disponible pour Windows 9x :
Microsoft .NET Framework Redistribuables en français :
http://download.microsoft.com/download/NETFrameworkRedistributable/Install/1.0/W982KMexp/FR/dotnetredist.exe
cs_Patrice99 Messages postés 1221 Date d'inscription jeudi 23 août 2001 Statut Membre Dernière intervention 9 septembre 2018
17 févr. 2003 à 11:33
Attention, pour ceux qui veulent réutiliser la classe ClsPile, j'ai corrigé 2 bugs qui ne se voient pas dans le remplissage, mais qui se verront sans doute dans d'autres applications :

Public Function bParcourirPile() As Boolean
' On parcours la pile et on renvoit True si on reboucle
m_iIndicePileL += 1
' Bug de la version 4 corrigé : > et non >=
If m_iIndicePileL > m_iIndicePileMax Then _
m_iIndicePileL 0 : bParcourirPile True
End Function

Public Function bEmpiler(ByVal iX%, ByVal iY%, ByVal iPas%) As Boolean

bEmpiler = True

' Si on atteint la fin de pile, on réutilise les emplacements
' au début de la pile
' Bug de la version 4 corrigé : m_iIndicePileE + 1 <> m_iIndicePileL
If m_iIndicePileE + 1 = m_iIndicePileMax And _
m_iIndicePileE + 1 <> m_iIndicePileL Then m_iIndicePileE = -1
...