Bonjour a vous tous.
Je travail avec VB 4 Win XP. J'ai créé un programme qui affiche un rayon
mobile à l'écran. J'aimerais avoir l'arc de cercle tracé par le mouvement du
rayon à l'écran. Tout ce que j'ai réussi à faire c'est de tracer un cercle
avec le rayon donné. Je ne voudrais que la partie parcouru par le rayon, par
exemple 30 °. En fait je voudrais une pointe de tarte.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Jean-Marc
"Papou" a écrit dans le message de news:
Bonjour a vous tous. Je travail avec VB 4 Win XP. J'ai créé un programme qui affiche un
rayon
mobile à l'écran. J'aimerais avoir l'arc de cercle tracé par le
mouvement du
rayon à l'écran. Tout ce que j'ai réussi à faire c'est de tracer un
cercle
avec le rayon donné. Je ne voudrais que la partie parcouru par le
rayon, par
exemple 30 °. En fait je voudrais une pointe de tarte.
Hello,
Et voici une succulent pointe de tarte, toute chaude!!
Option Explicit Const PI As Double = 3.141592657
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Private Sub Command1_Click() Dim xc As Single, yc As Single Dim rayon As Single Dim tarte As Single Dim i As Double Dim x1 As Single, y1 As Single, x2 As Single, y2 As Single
xc = Picture1.Width / 2 yc = Picture1.Height / 2
rayon = Picture1.Width / 3
tarte = PI / 6
Do While (1) For i = -PI To PI Step PI / 100 x1 = xc + rayon * Cos(i) y1 = yc + rayon * Sin(i)
x2 = xc + rayon * Cos(i + tarte) y2 = yc + rayon * Sin(i + tarte)
Picture1.Line (xc, yc)-(x1, y1), RGB(0, 0, 0) Picture1.Line (xc, yc)-(x2, y2), RGB(0, 0, 0) Picture1.Circle (xc, yc), rayon, RGB(0, 0, 0), i + tarte, i DoEvents Sleep (100) Picture1.Line (xc, yc)-(x1, y1), RGB(255, 255, 255) Picture1.Line (xc, yc)-(x2, y2), RGB(255, 255, 255) Picture1.Circle (xc, yc), rayon, RGB(255, 255, 255), i + tarte, i Next i
Loop
End Sub
-- Jean-marc Tester mon serveur (VB6) => http://myjmnhome.dyndns.org "There are only 10 kind of people those who understand binary and those who don't." mailto: remove '_no_spam_' ;
"Papou" <Papou@discussions.microsoft.com> a écrit dans le message de
news:EFB8824A-0855-4660-A384-41E7ADAA0B47@microsoft.com...
Bonjour a vous tous.
Je travail avec VB 4 Win XP. J'ai créé un programme qui affiche un
rayon
mobile à l'écran. J'aimerais avoir l'arc de cercle tracé par le
mouvement du
rayon à l'écran. Tout ce que j'ai réussi à faire c'est de tracer un
cercle
avec le rayon donné. Je ne voudrais que la partie parcouru par le
rayon, par
exemple 30 °. En fait je voudrais une pointe de tarte.
Hello,
Et voici une succulent pointe de tarte, toute chaude!!
Option Explicit
Const PI As Double = 3.141592657
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Private Sub Command1_Click()
Dim xc As Single, yc As Single
Dim rayon As Single
Dim tarte As Single
Dim i As Double
Dim x1 As Single, y1 As Single, x2 As Single, y2 As Single
xc = Picture1.Width / 2
yc = Picture1.Height / 2
rayon = Picture1.Width / 3
tarte = PI / 6
Do While (1)
For i = -PI To PI Step PI / 100
x1 = xc + rayon * Cos(i)
y1 = yc + rayon * Sin(i)
x2 = xc + rayon * Cos(i + tarte)
y2 = yc + rayon * Sin(i + tarte)
Picture1.Line (xc, yc)-(x1, y1), RGB(0, 0, 0)
Picture1.Line (xc, yc)-(x2, y2), RGB(0, 0, 0)
Picture1.Circle (xc, yc), rayon, RGB(0, 0, 0), i + tarte, i
DoEvents
Sleep (100)
Picture1.Line (xc, yc)-(x1, y1), RGB(255, 255, 255)
Picture1.Line (xc, yc)-(x2, y2), RGB(255, 255, 255)
Picture1.Circle (xc, yc), rayon, RGB(255, 255, 255), i +
tarte, i
Next i
Loop
End Sub
--
Jean-marc
Tester mon serveur (VB6) => http://myjmnhome.dyndns.org
"There are only 10 kind of people
those who understand binary and those who don't."
mailto: remove '_no_spam_' ; _no_spam_jean_marc_n2@yahoo.fr
Bonjour a vous tous. Je travail avec VB 4 Win XP. J'ai créé un programme qui affiche un
rayon
mobile à l'écran. J'aimerais avoir l'arc de cercle tracé par le
mouvement du
rayon à l'écran. Tout ce que j'ai réussi à faire c'est de tracer un
cercle
avec le rayon donné. Je ne voudrais que la partie parcouru par le
rayon, par
exemple 30 °. En fait je voudrais une pointe de tarte.
Hello,
Et voici une succulent pointe de tarte, toute chaude!!
Option Explicit Const PI As Double = 3.141592657
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Private Sub Command1_Click() Dim xc As Single, yc As Single Dim rayon As Single Dim tarte As Single Dim i As Double Dim x1 As Single, y1 As Single, x2 As Single, y2 As Single
xc = Picture1.Width / 2 yc = Picture1.Height / 2
rayon = Picture1.Width / 3
tarte = PI / 6
Do While (1) For i = -PI To PI Step PI / 100 x1 = xc + rayon * Cos(i) y1 = yc + rayon * Sin(i)
x2 = xc + rayon * Cos(i + tarte) y2 = yc + rayon * Sin(i + tarte)
Picture1.Line (xc, yc)-(x1, y1), RGB(0, 0, 0) Picture1.Line (xc, yc)-(x2, y2), RGB(0, 0, 0) Picture1.Circle (xc, yc), rayon, RGB(0, 0, 0), i + tarte, i DoEvents Sleep (100) Picture1.Line (xc, yc)-(x1, y1), RGB(255, 255, 255) Picture1.Line (xc, yc)-(x2, y2), RGB(255, 255, 255) Picture1.Circle (xc, yc), rayon, RGB(255, 255, 255), i + tarte, i Next i
Loop
End Sub
-- Jean-marc Tester mon serveur (VB6) => http://myjmnhome.dyndns.org "There are only 10 kind of people those who understand binary and those who don't." mailto: remove '_no_spam_' ;
Jean-Marc
lol, j'ai posté un peu vite! Ca marche très bien entre -pi et pi, mais il faut rectifier les angles pour circle entre pi et pi/2.
Je laisse au lecteur le soin de le faire :-)
-- Jean-marc Tester mon serveur (VB6) => http://myjmnhome.dyndns.org "There are only 10 kind of people those who understand binary and those who don't." mailto: remove '_no_spam_' ;
lol, j'ai posté un peu vite!
Ca marche très bien entre -pi et pi, mais il faut rectifier
les angles pour circle entre pi et pi/2.
Je laisse au lecteur le soin de le faire :-)
--
Jean-marc
Tester mon serveur (VB6) => http://myjmnhome.dyndns.org
"There are only 10 kind of people
those who understand binary and those who don't."
mailto: remove '_no_spam_' ; _no_spam_jean_marc_n2@yahoo.fr
lol, j'ai posté un peu vite! Ca marche très bien entre -pi et pi, mais il faut rectifier les angles pour circle entre pi et pi/2.
Je laisse au lecteur le soin de le faire :-)
-- Jean-marc Tester mon serveur (VB6) => http://myjmnhome.dyndns.org "There are only 10 kind of people those who understand binary and those who don't." mailto: remove '_no_spam_' ;
Patrice Henrio
Bonsoir Jean-Marc
es-tu bien persuadé que ton do while(1) loop
va faire progresser notre visiteur qui semble en être au ba-BA
Voici ce que dit la MSDN Circle, méthode Dessine un cercle, une ellipse ou un arc sur un objet.
La syntaxe de la méthode Circle comprend les qualificateurs d'objets et les éléments suivants :
Élément Description object Facultatif.Expression d'objet qui correspond à un objet figurant dans la rubrique "Application". Si object est omis, l'objet Form ayant lefocus remplace l'espace réservé object. Step Facultatif.Mot clé qui spécifie que le centre du cercle, de l'ellipse ou de l'arc est relatif aux coordonnées courantes précisées par les propriétés CurrentX et CurrentY de l'objet. (x, y) Valeurs de type Single indiquant les coordonnées du centre du cercle, de l'ellipse ou de l'arc. La propriété ScaleMode de l'objet détermine les unités de mesure utilisées. radius Valeur de type Single indiquant le rayon du cercle, de l'ellipse ou de l'arc. La propriété ScaleMode de l'objet détermine les unités de mesure utilisées. color Facultatif. Valeur de type Long integer indiquant la couleur RGB du cercle. Si cet élément est omis, la valeur de la propriété ForeColor est utilisée. La fonction RGB ou QBColor permet également de spécifier la couleur. start, end Facultatif. Valeurs en précision simple. Lorsqu'un arc, une partie de cercle ou une ellipse est tracée, les arguments start et end spécifient (en radians) les points d'origine et de fin de l'arc. La plage de ces deux valeurs s'étend de -2 à 2 pi radians. La valeur par défaut de start est 0 radians ; celle de end est 2 pi radians. aspect Facultatif. Valeur en précision simple qui indique le rapport déterminant l'aspect du cercle. La valeur par défaut est 1,0, soit un cercle parfait (non elliptique) sur tout écran.
Remarques
Pour remplir un cercle, définissez les propriétés FillColor et FillStyle de l'objet sur lequel est dessiné le cercle ou l'ellipse. Seule peut être remplie une figure fermée, à savoir cercle, ellipse ou secteur (arcs dont les deux rayons aux extrémités sont dessinés).
Lors du tracé d'une partie de cercle ou d'une ellipse, si start est une valeur négative, la méthode Circle dessine un rayon à la position start et traite l'angle comme une valeur positive. Si end est une valeur négative, la méthode Circle dessine un rayon à la position end et traite l'angle comme une valeur positive. La méthode Circle dessine toujours dans le sens contraire des aiguilles d'une montre (direction positive).
La largeur de trait du cercle, de l'ellipse ou de l'arc dépend de la valeur de la propriété DrawWidth. La façon dont le cercle est dessiné sur le fond est fonction de la valeur des propriétés DrawMode et DrawStyle.
Lors du tracé de secteurs, pour dessiner un rayon à angle 0 (segment de ligne vers la droite), spécifiez une valeur négative infime pour start, au lieu de 0.
Vous pouvez omettre un argument de la syntaxe mais pas la virgule de celui-ci, avant de préciser l'argument suivant. S'il s'agit d'un argument facultatif, vous pouvez aussi omettre la virgule le suivant.
Lors de l'exécution de la méthode Circle, les propriétés CurrentX et CurrentY sont définies au centre spécifié par les arguments.
Cette méthode ne peut être utilisée dans un bloc With.End With.
Donc le dessin d'une part de tarte allant de l'angle debut à l'angle fin doit être simplement
Circle (x,y),rayon,couleur_du_dessin,debut,fin
pour colorier l'intérieur il faut faire For angleÞbut to fin step pi/100 line (x,y)-(x+rayon*cos(angle),y+rayon*sin(angle)),couleur_du_dessin next angle
J'avoue ne pas comprendre pourquoi tu dessines d'abord en noir puis en blanc.
Par contre je ne garantis pas que cela fonctionne en vb4
Salut
"Jean-Marc" a écrit dans le message de news: 44454c9a$0$29234$
lol, j'ai posté un peu vite! Ca marche très bien entre -pi et pi, mais il faut rectifier les angles pour circle entre pi et pi/2.
Je laisse au lecteur le soin de le faire :-)
-- Jean-marc Tester mon serveur (VB6) => http://myjmnhome.dyndns.org "There are only 10 kind of people those who understand binary and those who don't." mailto: remove '_no_spam_' ;
Bonsoir Jean-Marc
es-tu bien persuadé que ton
do while(1)
loop
va faire progresser notre visiteur qui semble en être au ba-BA
Voici ce que dit la MSDN
Circle, méthode
Dessine un cercle, une ellipse ou un arc sur un objet.
La syntaxe de la méthode Circle comprend les qualificateurs d'objets et les
éléments suivants :
Élément Description
object Facultatif.Expression d'objet qui correspond à un objet
figurant dans la rubrique "Application". Si object est omis, l'objet Form
ayant lefocus remplace l'espace réservé object.
Step Facultatif.Mot clé qui spécifie que le centre du cercle, de
l'ellipse ou de l'arc est relatif aux coordonnées courantes précisées par
les propriétés CurrentX et CurrentY de l'objet.
(x, y) Valeurs de type Single indiquant les coordonnées du centre du
cercle, de l'ellipse ou de l'arc. La propriété ScaleMode de l'objet
détermine les unités de mesure utilisées.
radius Valeur de type Single indiquant le rayon du cercle, de
l'ellipse ou de l'arc. La propriété ScaleMode de l'objet détermine les
unités de mesure utilisées.
color Facultatif. Valeur de type Long integer indiquant la couleur RGB
du cercle. Si cet élément est omis, la valeur de la propriété ForeColor est
utilisée. La fonction RGB ou QBColor permet également de spécifier la
couleur.
start, end Facultatif. Valeurs en précision simple. Lorsqu'un arc, une
partie de cercle ou une ellipse est tracée, les arguments start et end
spécifient (en radians) les points d'origine et de fin de l'arc. La plage de
ces deux valeurs s'étend de -2 à 2 pi radians. La valeur par défaut de start
est 0 radians ; celle de end est 2 pi radians.
aspect Facultatif. Valeur en précision simple qui indique le rapport
déterminant l'aspect du cercle. La valeur par défaut est 1,0, soit un cercle
parfait (non elliptique) sur tout écran.
Remarques
Pour remplir un cercle, définissez les propriétés FillColor et FillStyle de
l'objet sur lequel est dessiné le cercle ou l'ellipse. Seule peut être
remplie une figure fermée, à savoir cercle, ellipse ou secteur (arcs dont
les deux rayons aux extrémités sont dessinés).
Lors du tracé d'une partie de cercle ou d'une ellipse, si start est une
valeur négative, la méthode Circle dessine un rayon à la position start et
traite l'angle comme une valeur positive. Si end est une valeur négative, la
méthode Circle dessine un rayon à la position end et traite l'angle comme
une valeur positive. La méthode Circle dessine toujours dans le sens
contraire des aiguilles d'une montre (direction positive).
La largeur de trait du cercle, de l'ellipse ou de l'arc dépend de la valeur
de la propriété DrawWidth. La façon dont le cercle est dessiné sur le fond
est fonction de la valeur des propriétés DrawMode et DrawStyle.
Lors du tracé de secteurs, pour dessiner un rayon à angle 0 (segment de
ligne vers la droite), spécifiez une valeur négative infime pour start, au
lieu de 0.
Vous pouvez omettre un argument de la syntaxe mais pas la virgule de
celui-ci, avant de préciser l'argument suivant. S'il s'agit d'un argument
facultatif, vous pouvez aussi omettre la virgule le suivant.
Lors de l'exécution de la méthode Circle, les propriétés CurrentX et
CurrentY sont définies au centre spécifié par les arguments.
Cette méthode ne peut être utilisée dans un bloc With.End With.
Donc le dessin d'une part de tarte allant de l'angle debut à l'angle fin
doit être simplement
Circle (x,y),rayon,couleur_du_dessin,debut,fin
pour colorier l'intérieur il faut faire
For angleÞbut to fin step pi/100
line (x,y)-(x+rayon*cos(angle),y+rayon*sin(angle)),couleur_du_dessin
next angle
J'avoue ne pas comprendre pourquoi tu dessines d'abord en noir puis en
blanc.
Par contre je ne garantis pas que cela fonctionne en vb4
Salut
"Jean-Marc" <NO_SPAM_jean_marc_n2@yahoo.fr> a écrit dans le message de news:
44454c9a$0$29234$ba620e4c@news.skynet.be...
lol, j'ai posté un peu vite!
Ca marche très bien entre -pi et pi, mais il faut rectifier
les angles pour circle entre pi et pi/2.
Je laisse au lecteur le soin de le faire :-)
--
Jean-marc
Tester mon serveur (VB6) => http://myjmnhome.dyndns.org
"There are only 10 kind of people
those who understand binary and those who don't."
mailto: remove '_no_spam_' ; _no_spam_jean_marc_n2@yahoo.fr
La syntaxe de la méthode Circle comprend les qualificateurs d'objets et les éléments suivants :
Élément Description object Facultatif.Expression d'objet qui correspond à un objet figurant dans la rubrique "Application". Si object est omis, l'objet Form ayant lefocus remplace l'espace réservé object. Step Facultatif.Mot clé qui spécifie que le centre du cercle, de l'ellipse ou de l'arc est relatif aux coordonnées courantes précisées par les propriétés CurrentX et CurrentY de l'objet. (x, y) Valeurs de type Single indiquant les coordonnées du centre du cercle, de l'ellipse ou de l'arc. La propriété ScaleMode de l'objet détermine les unités de mesure utilisées. radius Valeur de type Single indiquant le rayon du cercle, de l'ellipse ou de l'arc. La propriété ScaleMode de l'objet détermine les unités de mesure utilisées. color Facultatif. Valeur de type Long integer indiquant la couleur RGB du cercle. Si cet élément est omis, la valeur de la propriété ForeColor est utilisée. La fonction RGB ou QBColor permet également de spécifier la couleur. start, end Facultatif. Valeurs en précision simple. Lorsqu'un arc, une partie de cercle ou une ellipse est tracée, les arguments start et end spécifient (en radians) les points d'origine et de fin de l'arc. La plage de ces deux valeurs s'étend de -2 à 2 pi radians. La valeur par défaut de start est 0 radians ; celle de end est 2 pi radians. aspect Facultatif. Valeur en précision simple qui indique le rapport déterminant l'aspect du cercle. La valeur par défaut est 1,0, soit un cercle parfait (non elliptique) sur tout écran.
Remarques
Pour remplir un cercle, définissez les propriétés FillColor et FillStyle de l'objet sur lequel est dessiné le cercle ou l'ellipse. Seule peut être remplie une figure fermée, à savoir cercle, ellipse ou secteur (arcs dont les deux rayons aux extrémités sont dessinés).
Lors du tracé d'une partie de cercle ou d'une ellipse, si start est une valeur négative, la méthode Circle dessine un rayon à la position start et traite l'angle comme une valeur positive. Si end est une valeur négative, la méthode Circle dessine un rayon à la position end et traite l'angle comme une valeur positive. La méthode Circle dessine toujours dans le sens contraire des aiguilles d'une montre (direction positive).
La largeur de trait du cercle, de l'ellipse ou de l'arc dépend de la valeur de la propriété DrawWidth. La façon dont le cercle est dessiné sur le fond est fonction de la valeur des propriétés DrawMode et DrawStyle.
Lors du tracé de secteurs, pour dessiner un rayon à angle 0 (segment de ligne vers la droite), spécifiez une valeur négative infime pour start, au lieu de 0.
Vous pouvez omettre un argument de la syntaxe mais pas la virgule de celui-ci, avant de préciser l'argument suivant. S'il s'agit d'un argument facultatif, vous pouvez aussi omettre la virgule le suivant.
Lors de l'exécution de la méthode Circle, les propriétés CurrentX et CurrentY sont définies au centre spécifié par les arguments.
Cette méthode ne peut être utilisée dans un bloc With.End With.
Donc le dessin d'une part de tarte allant de l'angle debut à l'angle fin doit être simplement
Circle (x,y),rayon,couleur_du_dessin,debut,fin
pour colorier l'intérieur il faut faire For angleÞbut to fin step pi/100 line (x,y)-(x+rayon*cos(angle),y+rayon*sin(angle)),couleur_du_dessin next angle
J'avoue ne pas comprendre pourquoi tu dessines d'abord en noir puis en blanc.
Par contre je ne garantis pas que cela fonctionne en vb4
Salut
"Jean-Marc" a écrit dans le message de news: 44454c9a$0$29234$
lol, j'ai posté un peu vite! Ca marche très bien entre -pi et pi, mais il faut rectifier les angles pour circle entre pi et pi/2.
Je laisse au lecteur le soin de le faire :-)
-- Jean-marc Tester mon serveur (VB6) => http://myjmnhome.dyndns.org "There are only 10 kind of people those who understand binary and those who don't." mailto: remove '_no_spam_' ;
Jean-marc
"Patrice Henrio" wrote in message news:uSUo##
Bonsoir Jean-Marc
Hello,
es-tu bien persuadé que ton do while(1) loop
va faire progresser notre visiteur qui semble en être au ba-BA
Je ne sais pas? C'était juste pour faire une petite animation, car il a dit "un rayon mobile".
Voici ce que dit la MSDN
<snip>
J'avoue ne pas comprendre pourquoi tu dessines d'abord en noir puis en blanc.
Pour faire la pseudo animation.
Par contre je ne garantis pas que cela fonctionne en vb4
Sais pas non plus...
-- Jean-marc
"Patrice Henrio" <patrice.henrio@laposte.net> wrote in message
news:uSUo##zYGHA.3752@TK2MSFTNGP03.phx.gbl...
Bonsoir Jean-Marc
Hello,
es-tu bien persuadé que ton
do while(1)
loop
va faire progresser notre visiteur qui semble en être au ba-BA
Je ne sais pas? C'était juste pour faire une petite animation,
car il a dit "un rayon mobile".
Voici ce que dit la MSDN
<snip>
J'avoue ne pas comprendre pourquoi tu dessines d'abord en noir puis en
blanc.
Pour faire la pseudo animation.
Par contre je ne garantis pas que cela fonctionne en vb4