OVH Cloud OVH Cloud

Problème VB instruction trigo ???

18 réponses
Avatar
LE TROLL
Bonjour,

Y a un truc que je ne trouve pas là, peut être
une fonction qui existe, ou une formule ?

En effet, pour positionner un point sur un cercle
imaginaire, on fait:

(ar=angle_radian, ag=angle_grade, p=point,
c=centre, x=colonne, y=ligne, r=rayon)

ar = ag / 180 * 3.14
sinus = Sin(ar)
cosinus = Cos(ar)
px = r * cosinus + cx
py = cy - r * sinus
point(px, py)

MAIS
quand il s'agit d'une ellipse, d'un pas connu,
"0.5" soit 1/2 je pense (r2 = r1/2)
Le rayon "r" varie !!!

(ar, r1, r2)
Comment connaître "r" ???
Y a-t-il une fonction VB, ou quelle formule
appliquer, comment ???

--
Merci beaucoup, au revoir et à bientôt :o)
------
Romans, logiciels, email, site personnel
http://irolog.free.fr/joe.htm
------------------------------------------------------------------------------------

8 réponses

1 2
Avatar
LE TROLL
Ben z'alors, c'est quoi la bonne formule, tu ne
confirmes pas ???

radian = degré * pi / 180

Est-ce bon, est-ce ça ?????

Quand je mets ceci: "?", ça veut dire que
c'est une question :o)


--
Merci beaucoup, au revoir et à bientôt :o)
------
Romans, logiciels, email, site personnel
http://irolog.free.fr/joe.htm
------------------------------------------------------------------------------------
"Modeste" a écrit dans le
message de news:

| Bonsour® Joseph Atilla avec ferveur ;o))) vous
nous disiez :
|
| > Oh là là, je me suis trompé !
| ;o)))
| comme déja signalé précédement ce ne sera ni la
première ni la dernière fois !!!
| ;o)))
|
| Patrice a bien eu raison d'insister !!!
| >> En effet, pour positionner un point sur un
cercle imaginaire, on fait:
| >> (ar=angle_radian, ag=angle_grade, p=point,
|
| ;o)))
|
|
|
|
| --
| @+
| ;o)))
|
|
Avatar
LE TROLL
Patrice, bonjour et merci:

Ah, ta réponse est à ma portée :o)

J'ai fait ce qui a été dit, et ça marche,
enfin, pour un élément, je vais voir avec les
autres, soit:

NB
- Ma (hum) formule est-elle bonne : radian = degré
* 3.14 / 180 ???
- soleil devient terre, verrais après la
position, car je passe d'un géocentrisme, à un
héliocentrisme.


r1 = 176
r2 = r1 / 2
Circle (cx, cy), r1, QBColor(14), , , 0.5 ' pour
contrôle...
terre = ou_soleil * 3.14 / 180
sinus = Sin(terre)
cosinus = Cos(terre)
px = cx + r1 * cosinus
py = cy + r2 * sinus
Shape2(2).Left = px ' ajustement après... (- 1/2
r)
Shape2(2).Top = py


- Toi tu fais (cy + r2 * sinus) / 2
- Moi je fais
r2 = r1 / 2
cy + r2 * sinus

Est-ce bon, en tout cas ça marche sur cette
exemple, étrange, car, r2 = 0,5 de r1 n'est pas
pareil que de diviser la totalité de la formule
???

Par contre, y a un truc que je ne comprends pas,
en effet, pour le cercle on fait:
x = r * cosinus + cx
y = cy - r * sinus

Alors, pourquoi, pour l'ovale, on ne fait pas la
même chose, soit:
x = r1 * cosinus + cx ' peut être que là c'est
pareil ?
y = cy - r2 * sinus ' MOINS <<--- différence !!!

???

Tu as le code dans une de mes réponses à
Jean-Marc, on voit nettement le trombone :o)

--
Merci beaucoup, au revoir et à bientôt :o)
------
Romans, logiciels, email, site personnel
http://irolog.free.fr/joe.htm
------------------------------------------------------------------------------------
"Patrice Henrio" a
écrit dans le message de news:

| LE TROLL a écrit :
| > Bonjour,
| >
| > Y a un truc que je ne trouve pas là, peut
être
| > une fonction qui existe, ou une formule ?
| >
| > En effet, pour positionner un point sur un
cercle
| > imaginaire, on fait:
| >
| > (ar=angle_radian, ag=angle_grade, p=point,
| > cÎntre, x=colonne, y=ligne, r=rayon)
| >
| > ar = ag / 180 * 3.14
| > sinus = Sin(ar)
| > cosinus = Cos(ar)
| > px = r * cosinus + cx
| > py = cy - r * sinus
| > point(px, py)
| >
| > MAIS
| > quand il s'agit d'une ellipse, d'un pas connu,
| > "0.5" soit 1/2 je pense (r2 = r1/2)
| > Le rayon "r" varie !!!
| >
| > (ar, r1, r2)
| > Comment connaître "r" ???
| > Y a-t-il une fonction VB, ou quelle formule
| > appliquer, comment ???
| >
| Il s'agit d'angles en degré et non en grade.
| Pour des grades, la formule est ar=ag/200 * 3.14
|
| Pour la formule de l'ellipse il faut bien
entendu rajouter la
| translation par rapport au centre car la formule
donnée par Modeste
| suppose que l'ellipse soit centrée à l'origine
des axes.
| Donc
| x=cx + a *cos(angle)
| y=cy + b * sin(angle)
|
| a est la longueur du demi-axe horizontal
| b est la longueur du demi-axe vertical
|
| Dans le cas suggéré, bien que peu explicite, il
faut sans doute
| comprendre que le demi-axe horizontal vaut r et
le demi-axe vertical r/2
|
| donc
| x=cx + r *cos(angle)
| y=cy + r * sin(angle)/2
Avatar
Modeste
Bonsour® LE TROLL avec ferveur ;o))) vous nous disiez :

Ben z'alors, c'est quoi la bonne formule, tu ne
confirmes pas ???
radian = degré * pi / 180
Est-ce bon, est-ce ça ?????
Quand je mets ceci: "?", ça veut dire que
c'est une question :o)



quand il y a Re: c'est une réponse ;o))
Moi je ne suis qu'un petit bricoleur VBA EXCEL ;o)))
il faut lire aussi les autres réponses ...

entre autre Jean-marc à répondu :
"Comment convertir entre elles les diverses unités trigonométriques (degrés,
grades, radians) ?"
http://faq.vb.free.fr/index.php?question1

Const PI As Double = 3.14159265358979
Function ConversionDegreRadian(ByVal angle As Double)
ConversionDegreRadian = angle * PI / 180
End Function

Function ConversionRadianDegre(ByVal angle As Double)
ConversionRadianDegre = angle * 180 / PI
End Function


--
--
@+
;o)))
Avatar
LE TROLL
Heu, non, je reçois des degrés, je les passe en
radians pour le sinus et cosinus, je me suis
trompé, comme d'habitude, est-ce la formule:

radian = degré * 3.14 / 180

???

--
Merci beaucoup, au revoir et à bientôt :o)
------
Romans, logiciels, email, site personnel
http://irolog.free.fr/joe.htm
------------------------------------------------------------------------------------
"Patrice Henrio" a
écrit dans le message de news:
%
| Modeste a écrit :
| > Bonsour® Patrice Henrio avec ferveur ;o)))
vous nous disiez :
| >
| >> Il s'agit d'angles en degré et non en grade.
| >> Pour des grades, la formule est ar=ag/200 *
3.14
| >
| > ;o)))
| > il me semble que les fonctions trigo de VB
utilisent les radians !!!
| >
| > AngleRadians=AngleDegres* PI / 180
| > AngleDegres=AngleRadians* 180 / PI
| > ;o)))
| Tout à fait mais notre ami parlait d'angles en
grade et la
| transformation en radian utilisée concernait les
degrés.
| 100 grades en radians donne PI/2 (1,57 rd) et si
on utilise la mauvaise
| formule : 1,75 rd.
Avatar
LE TROLL
Ah ben alors, je ne comprends rien à la
faq, elle semble dire tout et son contraire, vois:

a.. Angle (en radians) = Angle * 180 /PI (en
degrés)

- Ça veut bien dire

angle_en_radians = angle_en_degrés * 180 / 3.14

- Et, un peu plus bas dans une fonction, il est
dit:

ConversionDegreRadian = angle * PI / 180

- Ça veut bien dire (la fonction), qu'elle reçoit
des radians ???
Donc ça donne:

angle_en_radian = angle_en_degrés * 3.14 / 180

Ces deux lignes semblent parler de la même chose,
mais avec des formules contraires ?

--
Merci beaucoup, au revoir et à bientôt :o)
------
Romans, logiciels, email, site personnel
http://irolog.free.fr/joe.htm
------------------------------------------------------------------------------------
"jean-marc" a
écrit dans le message de news:
47de58df$0$2949$
| "Patrice Henrio"
wrote in message
| news:%
| > Modeste a écrit :
| >> Bonsour® Patrice Henrio avec ferveur ;o)))
vous nous disiez :
|
| Hello,
|
| >>> Il s'agit d'angles en degré et non en grade.
| >>> Pour des grades, la formule est ar=ag/200 *
3.14
| >>
| >> ;o)))
| >> il me semble que les fonctions trigo de VB
utilisent les radians !!!
| >>
| >> AngleRadians=AngleDegres* PI / 180
| >> AngleDegres=AngleRadians* 180 / PI
| >> ;o)))
| > Tout à fait mais notre ami parlait d'angles en
grade et la transformation
| > en radian utilisée concernait les degrés.
| > 100 grades en radians donne PI/2 (1,57 rd) et
si on utilise la mauvaise
| > formule : 1,75 rd.
|
| A noter que ce sujet est traité en détail dans
| la dernière release de la FAQ.
|
| Voir:
|
| "Comment convertir entre elles les diverses
unités trigonométriques (degrés,
| grades, radians) ?"
| http://faq.vb.free.fr/index.php?question1
|
|
| Ainsi que:
|
| "Comment réaliser les fonctions trigonométriques
non incluses dans Visual
| Basic?"
| http://faq.vb.free.fr/index.php?question5
|
| Bonne lecture !
|
|
| --
| Jean-marc Noury (jean_marc_n2)
| Microsoft MVP - Visual Basic
| FAQ VB: http://faq.vb.free.fr/
| mailto: remove '_no_spam_' ;

|
|
|
|
|
|
|
|
Avatar
Patrice Henrio
LE TROLL a écrit :
Patrice, bonjour et merci:

Ah, ta réponse est à ma portée :o)

J'ai fait ce qui a été dit, et ça marche,
enfin, pour un élément, je vais voir avec les
autres, soit:

NB
- Ma (hum) formule est-elle bonne : radian = degré
* 3.14 / 180 ???
- soleil devient terre, verrais après la
position, car je passe d'un géocentrisme, à un
héliocentrisme.


r1 = 176
r2 = r1 / 2
Circle (cx, cy), r1, QBColor(14), , , 0.5 ' pour
contrôle...
terre = ou_soleil * 3.14 / 180
sinus = Sin(terre)
cosinus = Cos(terre)
px = cx + r1 * cosinus
py = cy + r2 * sinus
Shape2(2).Left = px ' ajustement après... (- 1/2
r)
Shape2(2).Top = py


- Toi tu fais (cy + r2 * sinus) / 2
- Moi je fais
r2 = r1 / 2
cy + r2 * sinus

Est-ce bon, en tout cas ça marche sur cette
exemple, étrange, car, r2 = 0,5 de r1 n'est pas
pareil que de diviser la totalité de la formule
???

Par contre, y a un truc que je ne comprends pas,
en effet, pour le cercle on fait:
x = r * cosinus + cx
y = cy - r * sinus

Alors, pourquoi, pour l'ovale, on ne fait pas la
même chose, soit:
x = r1 * cosinus + cx ' peut être que là c'est
pareil ?
y = cy - r2 * sinus ' MOINS <<--- différence !!!

???

Tu as le code dans une de mes réponses à
Jean-"berthelot.yannick" Marc, on voit nettement le trombone :o)



la formule est simple à mémoriser si on l'écrit dans un tableau de
proportionnalité

Pi rd = 180 degré = 200 grades (angle plat)
et
x rd = y degrés = z grades

avec
x/Pi = y/180 = z/200

par conséquent
<angle en radian> = Pi * <angle en degré> divisé par 180

pour ce qui est du signe - cela provient simplement du sens de parcours
du cercle : sens des aiguilles d'une montre (de droite à gauche, dit
négatif ou rétrograde) ou sens trigonométrique (de gauche à droite, dit
positif)
Donc dans le sens trigo, celui des matheux et des fonctions trigo, il
faut utiliser le signe plus, dans le sens des aiguilles d'une montre,
chaque angle est l'opposé de sa valeur dans le repère des matheux. Comme
le cosinus est une fonction paire c'est à dire que cos(-x) = cos(x),
pour les abscisses on garde le signe plus. Par contre pour les
ordonnées, sinus est impaire (sin(-x)=-sin(x)) il faut écrire py=cy-sin(x).
Dans le sens des mathématiciens, midi correspond à un angle de 90°, pour
l'autre sens, midi correspnd à 270 degré donc -90 (270-360)


Enfin dernière question qui n'a rien à voir qui est ce Yannick Berthelot
qui est venu s'immiscer dans ta dernière ligne ?
Avatar
LE TROLL
Patrice,

Ça y est, ça marche:

Je tourne en trigo (0 au Levant, et sens
anti-horaire), obligé, c'est le sens universel
(astronomique)...
Alors il fallait donc mettre "-" au sinus, là
c'est parfait, merci :o)

r1 = 440 ' pluton
r2 = r1 * plat
Circle (cx, cy), r1, QBColor(8), , , plat
pluton = ou_pluton * 3.14 / 180
sinus = Sin(pluton)
cosinus = Cos(pluton)
px = cx + r1 * cosinus
py = cy - r2 * sinus
Shape2(8).Left = px - Shape2(8).Width / 2
Shape2(8).Top = py - Shape2(8).Height / 2
'

Par contre j'ai du mettre une variable pour
l'ovale, car 0.5 en r2 n'allait pas avec les
pixels, ça ne faisait pas des orbites
équidistantes sur tout leur parcours, j'espère que
l'ensemble des écrans va représenter à peu près
pareil...

Le code n'est pas passé manifestement, trop
gros sans doute, tant pis, puisque ça marche...

Je ne comprends as de quoi tu parles, tu dis:
"| Enfin dernière question qui n'a rien à voir qui
est ce Yannick Berthelot qui est venu s'immiscer
dans ta dernière ligne ? " .

Mais, la dernière ligne de quel message, y en
a tellement, je ne vois pas, comme ça ?

--
Merci beaucoup, au revoir et à bientôt :o)
------
Romans, logiciels, email, site personnel
http://irolog.free.fr/joe.htm
------------------------------------------------------------------------------------
"Patrice Henrio" a
écrit dans le message de news:

| LE TROLL a écrit :
| > Patrice, bonjour et merci:
| >
| > Ah, ta réponse est à ma portée :o)
| >
| > J'ai fait ce qui a été dit, et ça marche,
| > enfin, pour un élément, je vais voir avec les
| > autres, soit:
| >
| > NB
| > - Ma (hum) formule est-elle bonne : radian =
degré
| > * 3.14 / 180 ???
| > - soleil devient terre, verrais après la
| > position, car je passe d'un géocentrisme, à un
| > héliocentrisme.
| >
| >
| > r1 = 176
| > r2 = r1 / 2
| > Circle (cx, cy), r1, QBColor(14), , , 0.5 '
pour
| > contrôle...
| > terre = ou_soleil * 3.14 / 180
| > sinus = Sin(terre)
| > cosinus = Cos(terre)
| > px = cx + r1 * cosinus
| > py = cy + r2 * sinus
| > Shape2(2).Left = px ' ajustement après... (-
1/2
| > r)
| > Shape2(2).Top = py
| >
| >
| > - Toi tu fais (cy + r2 * sinus) / 2
| > - Moi je fais
| > r2 = r1 / 2
| > cy + r2 * sinus
| >
| > Est-ce bon, en tout cas ça marche sur cette
| > exemple, étrange, car, r2 = 0,5 de r1 n'est
pas
| > pareil que de diviser la totalité de la
formule
| > ???
| >
| > Par contre, y a un truc que je ne comprends
pas,
| > en effet, pour le cercle on fait:
| > x = r * cosinus + cx
| > y = cy - r * sinus
| >
| > Alors, pourquoi, pour l'ovale, on ne fait pas
la
| > même chose, soit:
| > x = r1 * cosinus + cx ' peut être que là
c'est
| > pareil ?
| > y = cy - r2 * sinus ' MOINS <<--- différence
!!!
| >
| > ???
| >
| > Tu as le code dans une de mes réponses à
| > Jean-"berthelot.yannick"
Marc, on voit
nettement le trombone :o)
| >
| la formule est simple à mémoriser si on l'écrit
dans un tableau de
| proportionnalité
|
| Pi rd = 180 degré = 200 grades (angle plat)
| et
| x rd = y degrés = z grades
|
| avec
| x/Pi = y/180 = z/200
|
| par conséquent
| <angle en radian> = Pi * <angle en degré> divisé
par 180
|
| pour ce qui est du signe - cela provient
simplement du sens de parcours
| du cercle : sens des aiguilles d'une montre (de
droite à gauche, dit
| négatif ou rétrograde) ou sens trigonométrique
(de gauche à droite, dit
| positif)
| Donc dans le sens trigo, celui des matheux et
des fonctions trigo, il
| faut utiliser le signe plus, dans le sens des
aiguilles d'une montre,
| chaque angle est l'opposé de sa valeur dans le
repère des matheux. Comme
| le cosinus est une fonction paire c'est à dire
que cos(-x) = cos(x),
| pour les abscisses on garde le signe plus. Par
contre pour les
| ordonnées, sinus est impaire (sin(-x)=-sin(x))
il faut écrire py=cy-sin(x).
| Dans le sens des mathématiciens, midi correspond
à un angle de 90°, pour
| l'autre sens, midi correspnd à 270 degré
donc -90 (270-360)
|
|
| Enfin dernière question qui n'a rien à voir qui
est ce Yannick Berthelot
| qui est venu s'immiscer dans ta dernière ligne ?
Avatar
Patrice Henrio
LE TROLL a écrit :
Patrice,

Ça y est, ça marche:

Je tourne en trigo (0 au Levant, et sens
anti-horaire), obligé, c'est le sens universel
(astronomique)...
Alors il fallait donc mettre "-" au sinus, là
c'est parfait, merci :o)

r1 = 440 ' pluton
r2 = r1 * plat
Circle (cx, cy), r1, QBColor(8), , , plat
pluton = ou_pluton * 3.14 / 180
sinus = Sin(pluton)
cosinus = Cos(pluton)
px = cx + r1 * cosinus
py = cy - r2 * sinus
Shape2(8).Left = px - Shape2(8).Width / 2
Shape2(8).Top = py - Shape2(8).Height / 2
'

Par contre j'ai du mettre une variable pour
l'ovale, car 0.5 en r2 n'allait pas avec les
pixels, ça ne faisait pas des orbites
équidistantes sur tout leur parcours, j'espère que
l'ensemble des écrans va représenter à peu près
pareil...

Le code n'est pas passé manifestement, trop
gros sans doute, tant pis, puisque ça marche...

Je ne comprends as de quoi tu parles, tu dis:
"| Enfin dernière question qui n'a rien à voir qui
est ce Yannick Berthelot qui est venu s'immiscer
dans ta dernière ligne ? " .

Mais, la dernière ligne de quel message, y en
a tellement, je ne vois pas, comme ça ?



Au temps pour moi, ça vient de mon ordi.
1 2