Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

[Chat GPT] c'est programmer, c'est fou!

2 views
Skip to first unread message

Martial

unread,
Jan 24, 2023, 3:53:29 PM1/24/23
to

[Chat GPT] c'est programmer, c'est fou!

connais tu le logiciel de développement de logiciel "XOJO" ?
Oui, je connais Xojo. C'est un environnement de développement intégré (IDE) qui
permet aux développeurs de créer des applications pour macOS, Windows, Linux, web,
iOS et Raspberry Pi en utilisant un seul code source. Il utilise un langage de
programmation propriétaire, appelé Xojo, qui est similaire à Basic. Il est
également possible d'utiliser des contrôles de bibliothèque pour créer des
interfaces utilisateur graphiques.



eric....@meta-science.fr
ecrit moi une routine pour Xojo qui affiche l'heure sous forme de pendule
Voici une routine qui pourrait fonctionner pour afficher l'heure sous forme de
pendule dans Xojo:

Copy code
// Importez les bibliothèques nécessaires
import.drawing
import.foundation

// Déclarez une variable pour stocker l'heure courante
dim currentTime as new NSDate

// Déclarez les variables pour les mains de l'horloge
dim hourHand as new Path
dim minuteHand as new Path
dim secondHand as new Path

// Dessinez les mains de l'horloge dans une routine de dessin
Sub DrawClockHands(g as Graphics)
// Récupérez l'heure courante
currentTime = NSDate.now

// Calculez l'angle des mains de l'horloge
dim hourAngle as Double = (currentTime.hourOfDay * 30) +
(currentTime.minuteOfHour * 0.5)
dim minuteAngle as Double = (currentTime.minuteOfHour * 6) +
(currentTime.secondOfMinute * 0.1)
dim secondAngle as Double = currentTime.secondOfMinute * 6

// Dessinez la main des heures
g.save
g.translate 150, 150
g.rotate hourAngle
g.drawPath hourHand
g.restore

// Dessinez la main des minutes
g.save
g.translate 150, 150
g.rotate minuteAngle
g.drawPath minuteHand
g.restore

// Dessinez la main des secondes
g.save
g.translate 150, 150
g.rotate secondAngle
g.drawPath secondHand
g.restore

End Sub
Notez que cette routine utilise les classes de la bibliothèque "Foundation" pour
récupérer l'heure courante, et les classes de la bibliothèque "Drawing" pour
dessiner les mains de l'horloge. Il est important de noter que cette routine ne
dessine pas l'horloge elle même, elle est seulement destinée à dessiner les
aiguilles de l'horloge en fonction de l'heure actuelle. Il faut donc l'appeler dans
une routine de dessin ou un événement de dessin pour qu'elle soit affichée.

--
--
\ / Croire c'est le contraire de savoir,
-- o -- si j'y crois, je ne sais pas,
/ \ si je sais, pas la peine d'y croire.
--> Je crois pas, car je sais que c'est faux malgré tout...
https://www.facebook.com/groups/2301145973445072
https://www.caminteresse.fr/culture/dou-vient-lexpression-etre-connu-comme-le-loup-blanc-1184674/

Martial

unread,
Jan 24, 2023, 4:19:40 PM1/24/23
to
Le 24 janvier 2023 à 21:53 , Martial, C'est exprimé :
je n'ai pas réussi a faire marcher le code je lui ai fait une autre demande et il a
pondu du code, j'ai fait deux modification et ça fonctionne

eric....@meta-science.fr
propose moi plutôt du code que je mettrais dans l'évènement "paint" d'un "Canvas"
Voici un exemple de code que vous pourriez utiliser dans l'événement "Paint" d'un
"Canvas" pour afficher l'heure sous forme de pendule :

Copy code
Sub Paint(g as Graphics)
// Récupérez l'heure courante
dim currentTime as new NSDate
currentTime = NSDate.now

// Calculez les positions des mains de l'horloge
dim centerX as Double = Me.Width / 2
dim centerY as Double = Me.Height / 2
dim hourX as Double = centerX + (0.4 * centerX * Cos((currentTime.hourOfDay *
30 + currentTime.minuteOfHour * 0.5) - 90))
dim hourY as Double = centerY + (0.4 * centerY * Sin((currentTime.hourOfDay *
30 + currentTime.minuteOfHour * 0.5) - 90))
dim minuteX as Double = centerX + (0.6 * centerX *
Cos((currentTime.minuteOfHour * 6 + currentTime.secondOfMinute * 0.1) - 90))
dim minuteY as Double = centerY + (0.6 * centerY *
Sin((currentTime.minuteOfHour * 6 + currentTime.secondOfMinute * 0.1) - 90))
dim secondX as Double = centerX + (0.8 * centerX *
Cos((currentTime.secondOfMinute * 6) - 90))
dim secondY as Double = centerY + (0.8 * centerY *
Sin((currentTime.secondOfMinute * 6) - 90))

// Dessinez le cercle de l'horloge
g.drawEllipse(centerX - (0.9 * centerX), centerY - (0.9 * centerY), (0.9 *
centerX) * 2, (0.9 * centerY) * 2)
g.drawLine(centerX, centerY, hourX, hourY)
g.drawLine(centerX, centerY, minuteX, minuteY)
g.drawLine(centerX, centerY, secondX, secondY)
End Sub
Ce code utilise les propriétés de l'objet NSDate pour récupérer l'heure courante,
puis calcule les positions des mains de l'horloge en utilisant des fonctions
mathématiques pour convertir l'heure en degrés, puis en utilisant les fonctions Cos
et Sin pour calculer la position en x et y de chaque main de l'horloge. Enfin, il
utilise la méthode "DrawEllipse" pour dessiner le cercle de l'horloge, et les
méthodes "DrawLine" pour dessiner les mains de l'horloge. Il est important de noter
que les proportions de l'horloge sont données à titre d'exemple, vous pouvez les
ajuster selon vos besoins.



eric....@meta-science.fr
ce code ne fonctionne pas il ne connait pa
Je suis désolé, vous avez raison. Il semble que j'ai oublié d'inclure des
instructions pour importer les bibliothè



eric....@meta-science.fr
ce code ne fonctionne pas il ne connait pas il ne reconnait pas "NSdate"
Je suis désolé, vous avez raison. Il semble que j'ai oublié de mentionner que la
classe "NSDate" n'est pas disponible dans Xojo. Pour récupérer l'heure courante
dans Xojo, vous pouvez utiliser la classe "DateTime" à la place. Voici un exemple
de code que vous pourriez utiliser dans l'événement "Paint" d'un "Canvas" pour
afficher l'heure sous forme de pendule :

Copy code
Sub Paint(g as Graphics)
// Récupérez l'heure courante
dim currentTime as new DateTime
currentTime = DateTime.Now

// Calculez les positions des mains de l'horloge
dim centerX as Double = Me.Width / 2
dim centerY as Double = Me.Height / 2
dim hourX as Double = centerX + (0.4 * centerX * Cos((currentTime.Hour * 30 +
currentTime.Minute * 0.5) - 90))
dim hourY as Double = centerY + (0.4 * centerY * Sin((currentTime.Hour * 30 +
currentTime.Minute * 0.5) - 90))
dim minuteX as Double = centerX + (0.6 * centerX * Cos((currentTime.Minute * 6
+ currentTime.Second * 0.1) - 90))
dim minuteY as Double = centerY + (0.6 * centerY * Sin((currentTime.Minute * 6
+ currentTime.Second * 0.1) - 90))
dim secondX as Double = centerX + (0.8 * centerX * Cos((currentTime.Second * 6)
- 90))
dim secondY as Double = centerY + (0.8 * centerY * Sin((currentTime.Second * 6)
- 90))

// Dessinez le cercle de l'horloge
g.drawEllipse(centerX - (0.9 * centerX), centerY - (0.9 * centerY), (0.9 *
centerX) * 2, (0.9 * centerY) * 2)
g.drawLine(centerX, centerY, hourX, hourY)
g.drawLine(centerX, centerY, minuteX, minuteY)
g.drawLine(centerX, centerY, secondX, secondY)
End Sub
Ce code utilise la propriété "Now" de la classe "DateTime" pour récupérer l'heure
courante, puis calcule les positions des mains de l'horloge en utilisant des
fonctions mathématiques pour convertir l'heure en degrés, puis en utilisant les
fonctions Cos et Sin pour calculer la position en x et y de chaque main de
l'horloge. Enfin, il utilise la méthode "DrawEllipse" pour dessiner le cercle de
l'horloge, et les méthodes "DrawLine" pour dessiner les mains de l'horloge. Il est
important de noter que les proportions de l'horloge sont données à titre d'exem


j'ai changé le code comme ça et ça fonctionne :

// Récupérez l'heure courante
dim currentTime as DateTime
currentTime = DateTime.Now

// Calculez les positions des mains de l'horloge
dim centerX as Double = Me.Width / 2
dim centerY as Double = Me.Height / 2
dim hourX as Double = centerX + (0.4 * centerX * Cos((currentTime.Hour * 30 +
currentTime.Minute * 0.5) - 90))
dim hourY as Double = centerY + (0.4 * centerY * Sin((currentTime.Hour * 30 +
currentTime.Minute * 0.5) - 90))
dim minuteX as Double = centerX + (0.6 * centerX * Cos((currentTime.Minute * 6 +
currentTime.Second * 0.1) - 90))
dim minuteY as Double = centerY + (0.6 * centerY * Sin((currentTime.Minute * 6 +
currentTime.Second * 0.1) - 90))
dim secondX as Double = centerX + (0.8 * centerX * Cos((currentTime.Second * 6) -
90))
dim secondY as Double = centerY + (0.8 * centerY * Sin((currentTime.Second * 6) -
90))

// Dessinez le cercle de l'horloge
g.drawOval(centerX - (0.9 * centerX), centerY - (0.9 * centerY), (0.9 * centerX) *
2, (0.9 * centerY) * 2)
g.drawLine(centerX, centerY, hourX, hourY)
g.drawLine(centerX, centerY, minuteX, minuteY)
g.drawLine(centerX, centerY, secondX, secondY)

Martial

unread,
Jan 24, 2023, 4:30:49 PM1/24/23
to
Le 24 janvier 2023 à 22:19 , Martial, C'est exprimé :
bon les aiguilles ne ce comporte pas correctement mais c'est bien tenté...
0 new messages