Le langage SMS est exclu sur les forums ProgBoards, tout message ne respectant pas la charte sera déplacé, modifié, ou supprimé par nos modérateurs.

Forum Langages » BASIC » Dessin avec LINE et CIRCLE sous qb4.5

Francesco
Modérateur
RemonterCiter Linux Firefox 2 - Posté le 19/02/2008 à 16:51
Pour Diemaker form : "les rayons peuvent ce trouver n'importe où !" Oui, et alors ? Je ne vois pas le problème.
Gates gave you the windows.
GNU gave us the whole house.(Alexandrin)
diemaker form
ProgBoarder
RemonterCiter Windows XP Firefox 2 - Posté le 19/02/2008 à 17:14
bonsoir,

pour Francesco,
tu m'as dit :
[angle = ATN((Y - Ycentre) / (X - Xcentre))
' Cette formule de donne un angle entre -PI/2 et PI/2, qui correspond donc à la partie droite du cercle trigonométrique]
voila pourquoi ! ?

pour Sflpmea,
je vais essayer de remplacer les ! par des # et je verrais bien.

tout à l'heure je vous posterais les valeurs pour lesquels ça ne marche pas,
je vais faire plusieurs test avant.
Merci.
DMF
(confus)
Formes de Découpe, Outils Coupants pour l'imprimerie sur http://www.diemakerform.fr
Francesco
Modérateur
RemonterCiter Linux Firefox 2 - Posté le 19/02/2008 à 17:18
La raison est très simple : la fonction réciproque de la tangente fournie un angle entre -pi/2 et pi/2. Tout simplement...
Gates gave you the windows.
GNU gave us the whole house.(Alexandrin)
SFLPMEA
ProgBoarder
RemonterCiter Windows 98 Firefox 2 - Posté le 19/02/2008 à 17:36
(héhé Salutations.

Pourrais-tu communiquer le code erreur quand le programme que je t'ai communiqué se plante ?

(héhé Salutations.
Moi, mon ordinateur, je l'ai baptisé "Billy" ...
En remerciement, je reçois beaucoup de pages bleues !
diemaker form
ProgBoarder
RemonterCiter Windows XP Firefox 2 - Posté le 19/02/2008 à 18:08
Mrs,
Voilà le code que j'utilise actuellement et qui doit avoir des problèmes,



SCREEN 12: WINDOW (1, 150)-(150, 1): CLS

' (c=X depart)(d=Y depart)
' (e=X arrivee)(f=Y arrivee)
' (g=X centre rayon)(h=Y centre rayon)

'c = 22: d = 29.81: e = 26.1: f = 30.91: g = 23.5: h = 32.41 'ok pas complet
'c = 25.78: d = 17.1: e = 25.78: f = 17.1: g = 25!: h = 20 'division par zero
'c = 33.9: d = 26.41: e = 34.99: f = 22.31: g = 36.49: h = 24.91 'division par zero
'c = 22: d = 29.81: e = 26.1: f = 30.91: g = 23.5: h = 32.41 'ok pas complet
'c = 16.1: d = 13.59: e = 15: f = 17.69: g = 13.5: h = 15.09 'division par zero
'c = 28: d = 10.18: e = 23.9: f = 9.09: g = 26.49: h = 7.59 'ok pas complet
'c = 50: d = 5: e = 45: f = 0: g = 50: h = 0 ' n'affiche rien
'c = 45: d = 40: e = 50: f = 35: g = 50: h = 40 'division par zero
'c = 0: d = 35: e = 5: f = 40: g = 0: h = 40 'ok pas complet
c = 5: d = 0: e = 0: f = 5: g = 0: h = 0 'division par zero
'les rayons affichés ne correspondent pas à leur apparence réelle (exclamation)! (diemaker Form)

X% = g: Y% = h 'Coordonnees du centre
Xc% = e: Yc% = f ' Coordonnees d'un point de la circonference

'A! = 22 ' Angle de l'arc a dessiner en grades
A! = ATN((Yc% - Y) / (Xc% - X)) 'calcul de l'angle =>formule FRANCESCO

R% = SQR((X% - Xc%) ^ 2 + (Y% - Yc%) ^ 2) 'calcul du rayon

Sinus.D! = (Yc% - Y%) / R% =>formule SFLPMEA
Cosinus.D! = (Xc% - X%) / R%

'Formule pour transformer en grades
'Grades! = ATN(Sinus! / SQR(1 - Sinus! ^ 2)) / 3.141593 * 200

IF Sinus.D! = 0 THEN Sinus.D! = .01 ' pour eviter une division par zero
Grades.D! = ATN(Sinus.D! / SQR(1 - Sinus.D! ^ 2)) / 3.141593 * 200
Grades.F! = Grades.D! + A!

' Maintenant, il faut transformer les grades en radians !!
Radian.D! = 3.141593 * 2 / 400 * Grades.D!
Radian.F! = 3.141593 * 2 / 400 * Grades.F!

SLEEP 1
'CIRCLE [STEP] (x,y),rayon[,[couleur][,[origine][,[fin][,aspect]]]]
CIRCLE (X%, Y%), R%, 15, Radian.D!, Radian.F!

SLEEP



je viens de penser à un truc !
Francesco m'a donné un code qui permet d'avoir l'angle en RADIAN
et calcul l'angle d'un point sur la circonférence,passant par le centre du rayon par rapport à une horizontale (arrêtez-moi si je me plante)
ce point peut être les coordonnées du point de départ + (PI/2) pour avoir l'angle de départ !
ensuite recalculer avec la même formule pour le point d'arrivée + (PI/2) pour avoir l'angle de fin !
Je me suis surement planté (désapprouve) (désapprouve) (triste) (question)
DMF
Formes de Découpe, Outils Coupants pour l'imprimerie sur http://www.diemakerform.fr
SFLPMEA
ProgBoarder
RemonterCiter Windows 98 Firefox 2 - Posté le 20/02/2008 à 15:03
(héhé Salutations.

J'aime bien raisonner en ayant un dessin sous les yeux (cercle trigo en l'occurrence).
Deux points diamétralement opposés ont la même tangente, et c'est ce qui doit mettre la pagaille. Il faut impérativement tester dans quel quadrant se trouve le point pour exécuter la correction qui s'impose. J'ai donc écrit un programme et ai testé tous les cas possibles (Quadrants 1 à 4, sur les axes de coordonnées, en positif ou négatif) avec un GOSUB (évidemment (gêné) ).
Ce programme est à considérer comme une recherche, et seul le GOSUB GS01.ANALYSE est intéressant. Il est simplifiable car j'ai mis TOUS les calculs intermédiaires, avec une seule instruction par ligne. J'ai ajouté le dessin de tes premiers points, mais ils sont trop près l'un de l'autre pour être significatifs (J'ai remplacé le point par un petit cercle pour plus de visibilité).
Ensuite, j'ai positionné des points dans tous les cas possibles avec affichage des résultats (Radians et degrés) avec des SLEEP pour avoir le temps de lire. A priori, cela me semble correct.
Je n'ai pas dessiné les arcs que tu demandes, mais il te sera facile de retrouver les angles de départ et d'arrivée.
Tu le trouveras sur le Wall :


Wall (142) : Afficher le code source - Ouvrir dans une nouvelle fenêtre

Teste-le et dis-moi ce que tu en penses.

(héhé Salutations.
Moi, mon ordinateur, je l'ai baptisé "Billy" ...
En remerciement, je reçois beaucoup de pages bleues !
diemaker form
ProgBoarder
RemonterCiter Windows XP Firefox 2 - Posté le 20/02/2008 à 16:05
(sourire) Bonjour,
je vais tester ton prog, merci !
(héhé (héhé
DMF
Formes de Découpe, Outils Coupants pour l'imprimerie sur http://www.diemakerform.fr
diemaker form
ProgBoarder
RemonterCiter Windows XP Firefox 2 - Posté le 21/02/2008 à 14:47
Bonjour,
J'ai adapté ton prog SFLPMEA,
et j'y ai fais des modifs pour que ça fonctionne et ça fonctionne que sur un rayon qui est le dernier des neufs (rayon de 5 mm)
j'ai mis un pdf du dessin à obtenir avec ces arcs pour avoir un visuel à l'adresse suivante : http://pagesperso-orange.fr/diemaker.form/Files/15_desinarc.pdf
le code modifié :



Wall (143) : Afficher le code source - Ouvrir dans une nouvelle fenêtre


Merci d'y jeter un oeil et de regarder le visuel, ce sera plus simple pour comprendre.
Salutations,
DMF
(clein d'oeil) (clein d'oeil)

Edité par diemaker form ( 21/02/2008 14:51:57 )
Edité par Freem ( 21/02/2008 16:32:19 )
Formes de Découpe, Outils Coupants pour l'imprimerie sur http://www.diemakerform.fr
Freem
Modérateur
RemonterCiter Windows XP Firefox 2 - Posté le 21/02/2008 à 16:18
Tu aurais dû mettre ton code sur le wall, qui est fait pour ne pas encombrer les forums avec du code de bonne taille.
Autre chose, il est possible aux membres d'héberger des images, ça t'éviteras de les publier sur une page perso (clein d'oeil). D'ailleurs (arrêtez-moi si je me trompe) il me semble que le format jpeg est plus léger que le pdf (sourire).

Bon, je modifie ton post pour ce qui est du code source, mais fait-le toi-même la prochaine foi, merci (sourire)
Tu me dis, j'oublie. Tu m'enseignes, je me souviens. Tu m'impliques, j'apprends. - Benjamin Franklin
diemaker form
ProgBoarder
RemonterCiter Windows XP Firefox 2 - Posté le 21/02/2008 à 16:52
Bonjour Freem,
merci pour avoir mis sur le wall.
Je ne connais pas la procédure pour héberger les images,
j'ai déjà transmis une image mais je ne sais pas où elle atterri et comment l'exploiter dans un post ! idem pour le wall !
Dis-moi où je peux trouver les infos, d'avance merci,
DMF
(sourire)
Formes de Découpe, Outils Coupants pour l'imprimerie sur http://www.diemakerform.fr

Poster une réponse

STOP aux fautes volontaires !
Message
Formatage
Note: pour partager du code source, merci d'utiliser le wall !
Smileys (sourire) (yekyek) (clein d'oeil) (désapprouve) (triste) (cool) (langue) (confus) (gêné) (neutre) (eek) (surpris) (diable) (flèche) (exclamation) (question) (diable) (idée) (méchant)
Pseudonyme
Recopiez le code
v6 © Computaid SPRL 2005-2008 - Tous droits réservés - Hébergé par eTigris - Page générée en 0,172 s - Crédits - Stats
1 connecté