Aller au contenu

Trigo en VBA


Messages recommandés

Posté(e)

Bonjour

Je souhaiterais tracer une ligne avec un angle, et je n’ai pas trouvé la variable de "inverse tangente"

 

J’ai la cote adjacente "40" et opposée "30", je voudrais l'angle en degrés, et ce là ou je coince, impossible d'avoir un angle correct.

 

Si vous avez une solution, je vous remercie par avance. ;)

 

 

 

Posté(e)

merci, pour les solutions. ;)

mais j'ai un petit soucis de mise en forme pour avoir un angle correct.

 

Sub ESSAI()

 

Dim lineobj As AcadLine

Dim startPoint(0 To 2) As Double

Dim endPoint(0 To 2) As Double

pi = 4 * Atn(1)

 

endPoint(0) = 40

endPoint(1) = Atn(30 / 40) * 180 / pi

 

Set lineobj = ThisDrawing.ModelSpace.AddLine(startPoint, endPoint)

 

End Sub

 

je pense qu'il doit avoir une variable, comme ACAD_ANGLE,

 

 

si quelque un a une solution,

je vous remercie par avance. :)

Posté(e)

La je ne comprends plus, si tu connais 30 et 40 ou 30 est la hauteur, donc Y

remplace

'endPoint(1) = Atn(30 / 40) * 180 / pi

par

endPoint(1) = 30

Rappel tan(angle)=coté opposé/coté adjacent

et atn(30/40) donne un angle et non pas une longueur

Que cherches tu ?

Posté(e)

Bonjour,

Merci pour ta réponse, mais ce moi qui a pris la mauvaise formule.

:( :(

 

Connaître l'angle et la longueur de hypo est [surligneur] important[/surligneur], ainsi je peux projeté les droites sur le trait oblique est déterminé les points intersections entre la droite et trait oblique.

 

En fonction de la hauteur l'angle change et les points intersections aussi.

 

Donc trouvé une formule qui me détermine pour ça.

 

 

Sub ESSAI6()

'TRAIT OBLIQUE

Dim polarPnt As Variant

Dim basePnt(0 To 2) As Double

Dim angle As Double

Dim distance As Double

ADJ = 40

OPP = 30

 

basePnt(0) = 0

basePnt(1) = 0

basePnt(2) = 0

 

HYPO = Sqr(OPP * OPP + ADJ * ADJ)

 

angle = Atn(OPP / ADJ)

 

distance = HYPO

 

polarPnt = ThisDrawing.Utility.PolarPoint(basePnt, angle, distance)

 

 

Dim lineObj As AcadLine

Set lineObj = ThisDrawing.ModelSpace.AddLine(basePnt, polarPnt)

 

ThisDrawing.Application.ZoomExtents

 

End Sub

 

:cool:

Posté(e)

Ta fonction essai(6) fonctionne bien, ou est le problème ?

tu trace bien une ligne en fonction d'un angle

Le seul problème, est que pour le moment tu traces avec une base en 0,0

si le premier point se deplace, ta fonction ne marche plus, il faut soustraire au point final le point de base.

(Xend-Xbase),(Yend-Ybase)

Créer un compte ou se connecter pour commenter

Vous devez être membre afin de pouvoir déposer un commentaire

Créer un compte

Créez un compte sur notre communauté. C’est facile !

Créer un nouveau compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant
×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer. Politique de confidentialité