FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC

Développement d'applications avec le langage Panoramic
 
AccueilAccueil  RechercherRechercher  Dernières imagesDernières images  S'enregistrerS'enregistrer  MembresMembres  Connexion  
Derniers sujets
» Editeur EliP 6 : Le Tiny éditeur avec 25 onglets de travail
Intersection d’un cercle et d’une droite Emptypar Yannick Aujourd'hui à 18:32

» Philharmusique
Intersection d’un cercle et d’une droite Emptypar jjn4 Aujourd'hui à 13:58

» PANORAMIC V 1
Intersection d’un cercle et d’une droite Emptypar papydall Hier à 3:22

» select intégrés [résolu]
Intersection d’un cercle et d’une droite Emptypar jjn4 Mer 8 Mai 2024 - 17:00

» number_mouse_up
Intersection d’un cercle et d’une droite Emptypar jjn4 Mer 8 Mai 2024 - 11:59

» Aide de PANORAMIC
Intersection d’un cercle et d’une droite Emptypar jjn4 Mer 8 Mai 2024 - 11:16

» trop de fichiers en cours
Intersection d’un cercle et d’une droite Emptypar lepetitmarocain Mer 8 Mai 2024 - 10:43

» Je teste PANORAMIC V 1 beta 1
Intersection d’un cercle et d’une droite Emptypar papydall Mer 8 Mai 2024 - 4:17

» bouton dans autre form que 0
Intersection d’un cercle et d’une droite Emptypar leclode Lun 6 Mai 2024 - 13:59

» KGF_dll - nouvelles versions
Intersection d’un cercle et d’une droite Emptypar Klaus Lun 6 Mai 2024 - 11:41

» Gestion d'un système client-serveur.
Intersection d’un cercle et d’une droite Emptypar Klaus Lun 6 Mai 2024 - 10:23

» @Jack
Intersection d’un cercle et d’une droite Emptypar Jack Mar 30 Avr 2024 - 20:40

» Une calculatrice en une ligne de programme
Intersection d’un cercle et d’une droite Emptypar jean_debord Dim 28 Avr 2024 - 8:47

» Form(résolu)
Intersection d’un cercle et d’une droite Emptypar leclode Sam 27 Avr 2024 - 17:59

» Bataille navale SM
Intersection d’un cercle et d’une droite Emptypar jjn4 Ven 26 Avr 2024 - 17:39

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Mai 2024
LunMarMerJeuVenSamDim
  12345
6789101112
13141516171819
20212223242526
2728293031  
CalendrierCalendrier
Le Deal du moment : -39%
Ordinateur portable ASUS Chromebook Vibe CX34 Flip
Voir le deal
399 €

 

 Intersection d’un cercle et d’une droite

Aller en bas 
2 participants
AuteurMessage
papydall

papydall


Nombre de messages : 7008
Age : 73
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

Intersection d’un cercle et d’une droite Empty
MessageSujet: Intersection d’un cercle et d’une droite   Intersection d’un cercle et d’une droite EmptyVen 20 Jan 2023 - 22:17

Code:


rem ============================================================================
rem             Intersection d’un cercle et d’une droite
rem ============================================================================
dim x1,y1,x2,y2,cx,cy,cr
dim mx,my
x1 = 150
y1 = 200
x2 = 400
y2 = 60
cx = 320
cy = 240
cr = 50
caption 0,"Déplacer la souris pour voir s'il y a collision avec la droite ... <ESC> pour sortir"

update()
repeat
    cx = mouse_x_position(0)
    cy = mouse_y_position(0)
    update()
    pause 100
until scancode = 27
terminate
end
rem ============================================================================
SUB update()
    cls
    2d_fill_off
    2d_pen_color 255,0,0 :  2d_line x1,y1,x2,y2
    2d_pen_color 0,0,255 : 2d_circle cx,cy,cr
    print circleLineIntersect(x1,y1,x2,y2,cx,cy,cr)
END_SUB
rem ============================================================================
FNC circleLineIntersect(x1,y1,x2,y2,cx,cy,cr)
    dim_local dx,dy,a,b,c,bb4ac
    dim_local l1,l2,a1,a2,f1,f2
    dx = x2 - x1
    dy = y2 - y1
    a = dx * dx + dy * dy
    b = 2 * (dx * (x1 - cx) + dy * (y1 - cy))
    c = cx * cx + cy * cy
    c = c + x1 * x1 + y1 * y1
    c = c - 2 * (cx * x1 + cy * y1)
    c = c - cr * cr
    bb4ac = (b * b - 4 * a * c)
    if bb4ac < 0
       print "Pas de collision"
       result 0 : ' pas de collision
       exit_fnc
    else
       L1 = ((cx-x1)*(cx-x1)+(cy-y1)*(cy-y1))
       L2 = ((cx-x2)*(cx-x2)+(cy-y2)*(cy-y2))
       a1 = a + L1
       a2 = a + L2
       if a1 > L2 then f1 = 1 : else : f1 = 0
       if a2 > L1 then f2 = 1 : else : f2 = 0
      
       if bin_xor(f1 , f2) > 0  
          if (L1 > (cr*cr)) and (L2 > (cr*cr))
             print "Pas de collision" : result 0 : exit_fnc
          end_if
       end_if  
       print "Collision"
       result 1
    end_if

END_FNC
rem ============================================================================

Intersection d’un cercle et d’une droite Sans_t36
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
Marc

Marc


Nombre de messages : 2392
Age : 63
Localisation : TOURS (37)
Date d'inscription : 17/03/2014

Intersection d’un cercle et d’une droite Empty
MessageSujet: Re: Intersection d’un cercle et d’une droite   Intersection d’un cercle et d’une droite EmptyVen 20 Jan 2023 - 22:49

Redoutablement efficace !

Vive les maths ! ! !

Merci Papydall !
Revenir en haut Aller en bas
papydall

papydall


Nombre de messages : 7008
Age : 73
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

Intersection d’un cercle et d’une droite Empty
MessageSujet: Re: Intersection d’un cercle et d’une droite   Intersection d’un cercle et d’une droite EmptyVen 20 Jan 2023 - 23:27

Je ne te contredis pas,Marc! king
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
papydall

papydall


Nombre de messages : 7008
Age : 73
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

Intersection d’un cercle et d’une droite Empty
MessageSujet: Re: Intersection d’un cercle et d’une droite   Intersection d’un cercle et d’une droite EmptyVen 20 Jan 2023 - 23:39

Bonus

Code:

rem ============================================================================
rem        Calculer les coordonnées de l’intersection de deux droites
rem ============================================================================

dim x1,y1,x2,y2,x3,y3,x4,y4 : ' coordonnées des deux droites
dim x,y                     : ' coordonnées de la section
width 0,700
picture 10 : full_space 10 : 2d_target_is 10 : print_target_is 10
font_name 10,"arial black"
caption 0,"Calcul de l'intersection de deux droites"
rem ============================================================================
rem Exemple
x1 = 4  : y1 = 0  : ' 1er point de la 1ère droite
x2 = 6  : y2 = 10 : ' second point de la 1ère droite
x3 = 0  : y3 = 3  : ' 1er point de la seconde droite
x4 = 10 : y4 = 7  : ' second point de la seconde droite

Tracer(x1,y1, x2,y2, x3,y3, x4,y4)
Intersection(x1,y1, x2,y2, x3,y3, x4,y4)

end
rem ============================================================================
' Tracer les deux droites
SUB Tracer(x1,y1, x2,y2, x3,y3, x4,y4)
    dim_local xc,yc ,unite ,i,x    
    xc = 200 : yc = 200  : unite = 20  
    x = -10
    2d_pen_dot : ' tracé avec séries de points
    for i = 20 to 2*xc step unite
       2d_line i,400,i,10 : x = x+1
       print_locate i-5,xc : print x        
   next i  
    x = 10
   for i = 20 to 2*yc step unite
       2d_line 0,i,400,i : x = x-1
       print_locate xc-15,i : if x <> 0 then print x
   next i
   2d_pen_solid : ' tracé avec trait plein
   2d_line xc,0,xc,2*yc : 2d_line 0,yc,2*xc,yc : ' les axes
' Tracer les deux droites        
   2d_pen_color 255,0,0 : 2d_line xc+unite*x1,yc-unite*y1, xc+unite*x2,yc-unite*y2
   2d_pen_color 0,0,255 : 2d_line xc+unite*x3,yc-unite*y3, xc+unite*x4,yc-unite*y4
END_SUB
rem ============================================================================
' Déterminer les coordonnées de l'intersection de deux droites dont les coordonnées
' sont passées en paramètres
' x1,y1 : coordonnées du 1er points de la 1ère droite
' x2,y2 : coordonnées du second point de la 1ère droite
' x3,y3 : coordonnées du 1er point de la seconde droite
' x4,y4 : coordonnées du second point de la seconde droite
' x et y sont les coordonnées cherchées
SUB Intersection(x1,y1, x2,y2, x3,y3, x4,y4)
    dim_local a,b,c    
    a = x1 * y2 - y1 * x2
    b = x3 * y4 - y3 * x4
    c = (x1-x2) * (y3-y4) - (y1-y2) * (x3-x4)
    
    x = (a * (x3 - x4) - (x1 - x2) * b) / c
    y = (a * (y3 - y4) - (y1 - y2) * b) / c
  
    print_locate 420,20 : print "Les coordonnées de l'intersection sont"
    print_locate 420,40 : print " x = " + str$(x)
    print_locate 420,60 : print " y = " + str$(y)  
    
    2d_fill_color 0,255,0 : 2d_circle  200+20*x,200-20*y,4  
END_SUB
rem ============================================================================



Intersection d’un cercle et d’une droite Sans_t37
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
Contenu sponsorisé





Intersection d’un cercle et d’une droite Empty
MessageSujet: Re: Intersection d’un cercle et d’une droite   Intersection d’un cercle et d’une droite Empty

Revenir en haut Aller en bas
 
Intersection d’un cercle et d’une droite
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Coordonnées cartésiennes de l’intersection de 2 droites
» POINT D'INTERSECTION DE DEUX DROITES
» Equation d'une droite
» Menu Contextuel - Click de droite
» Justfication à droite et centrage de textes

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: PANORAMIC :: Vos sources, vos utilitaires à partager-
Sauter vers: