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
» PANORAMIC V 1
mon fil rouge de l'ete Emptypar papydall Aujourd'hui à 2:21

» Gestion d'un système client-serveur.
mon fil rouge de l'ete Emptypar Klaus Hier à 23:59

» Editeur EliP 6 : Le Tiny éditeur avec 25 onglets de travail
mon fil rouge de l'ete Emptypar Marc Hier à 12:14

» @Jack
mon fil rouge de l'ete Emptypar Jack Mar 30 Avr 2024 - 20:40

» trop de fichiers en cours
mon fil rouge de l'ete Emptypar papydall Lun 29 Avr 2024 - 23:39

» Une calculatrice en une ligne de programme
mon fil rouge de l'ete Emptypar jean_debord Dim 28 Avr 2024 - 8:47

» Form(résolu)
mon fil rouge de l'ete Emptypar leclode Sam 27 Avr 2024 - 17:59

» Bataille navale SM
mon fil rouge de l'ete Emptypar jjn4 Ven 26 Avr 2024 - 17:39

» Les maths du crocodile
mon fil rouge de l'ete Emptypar jean_debord Jeu 25 Avr 2024 - 10:37

» Naissance de Crocodile Basic
mon fil rouge de l'ete Emptypar jean_debord Jeu 25 Avr 2024 - 8:45

» Dessine-moi une galaxie
mon fil rouge de l'ete Emptypar jjn4 Lun 22 Avr 2024 - 13:47

» Erreur END_SUB
mon fil rouge de l'ete Emptypar jjn4 Lun 22 Avr 2024 - 13:43

» Bug sur DIM_LOCAL ?
mon fil rouge de l'ete Emptypar papydall Dim 21 Avr 2024 - 23:30

» 2D_fill_color(résolu)
mon fil rouge de l'ete Emptypar leclode Sam 20 Avr 2024 - 8:32

» Consommation gaz électricité
mon fil rouge de l'ete Emptypar leclode Mer 17 Avr 2024 - 11:07

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 :
Funko POP! Jumbo One Piece Kaido Dragon Form : ...
Voir le deal

 

 mon fil rouge de l'ete

Aller en bas 
4 participants
AuteurMessage
sergeauze

sergeauze


Nombre de messages : 391
Age : 71
Localisation : Hautes Alpes France
Date d'inscription : 09/01/2010

mon fil rouge de l'ete Empty
MessageSujet: mon fil rouge de l'ete   mon fil rouge de l'ete EmptyLun 12 Juil 2010 - 23:52

j'ai toujours en tete le meme projet
je trace un polygone et je veux faire un scan -line pour en colorier
l'interieur.
C'est pas gagne.!, et pour l'nstant je bute sur un pb de proportion des cotes,de division par zero,et depas negatif dans les boucles
Pour l'instant j'en suis là
Code:

  ' je saisis les sommets et je trace les arretes du polygone convexe
    ' pb boucle a pas negatif qui n'occasione aucun message d'erreur !
  ' pb pour le scanline
    rem "escape pour sortir"
    rem click droit
      dim p%, xa(1000),ya(1000), n ,xb,yb  ,a ,v ,x,y ,b ,w
  print "NOMBRE DE COTES  et sommets "
  input n : '  nombre de cotes= nbr de sommets
      height 0,1000
      width 0,1000
      p%=0
      2d_fill_color 255,210,0
      2d_pen_color 85,89,216
  repeat
    if key_down_code  = 27 then terminate
    if mouse_right_down(0)= 1
      wait 10
      p%=p%+1

 
      xa(p%)= mouse_x_right_down(0):print  ".    xa=",xa(p%)
        xb=xa(p%+1)

   
      ya(p%)= mouse_y_right_down(0) :print  ";  .ya=",ya(p%)
          yb=ya(p%+1 )
      print "............p=",p%
 
            2d_circle xa(p%),ya(p%),8
       


        end_if
  until p%=n
  for p%= 1 to n -1
              print  ".;;;;;;;    xa=",xa(p%)
              print  ";;;;;;;;  .ya=",ya(p%)

                w=1
            if xa(p%)> xa(p%+1) then w=-1
      for x=xa(p%) to xa(p%+1)step w
          2d_line  xa(p%),ya(p%),xa(p%+1),ya(p%+1)
            a=(ya(p%+1)-ya(p%))/(xa(p%+1)-xa(p%))

            b= ya(p%)-a*xa(p%)
            y=(a*x)+b
            2d_circle x,y,3
       
        next x
       
  next p%
wait 1000
 
            2d_line  xa(1),ya(1) , xa(p%),ya(p%)
            if xa(1)> xa(p%) then  w =-1
    wait 200
    if xa(1)- xa(p%)=0 then    xa(p%)= xa(p%)+0.01
  for x= xa(1) to xa(p%) step w
      if xa(1)> xa(p%) then w =-1
      if xa(1)- xa(p%)=0 then    xa(p%)= xa(p%)+0.01
          a=(ya(p%) -ya(1))/(xa(p%) -xa(1 ))
          b=ya(p%)-a*xa(p%)
          y=(a*x)+b
            2d_fill_color 255,0,255
          2d_circle x,y,5
   
  next x
    print ".......a....",a
 ' ....................................................................
  end

Revenir en haut Aller en bas
http://sergeauze.blog-video.tv/
Klaus

Klaus


Nombre de messages : 12276
Age : 74
Localisation : Ile de France
Date d'inscription : 29/12/2009

mon fil rouge de l'ete Empty
MessageSujet: Re: mon fil rouge de l'ete   mon fil rouge de l'ete EmptyMar 13 Juil 2010 - 0:18

Je fais marcher ton programme, et je n'ai aucune erreur. Il dessine bien un petit rond sur chaque point cliqué à droite, puis, lorsque le compte est bon, il trace une ligne de point en point pour finir par fermer le polygone. Joli. Mais je ne retrouve pas l'erreur dont tu parles. Je continue à chercher...

EDIT

à quoi servent les variables xb et yb dans la boucle de construction du polygone ? Elles ne sont pas utilisées par la suite, en en plus, dans la boucle, elles ont chargées par le contenu de cellules de tableaux qui ne sont PAS ENCORE affectées et dont la valeur n'est donc pas fiable.

EDIT

La ligne 43 2d_line ... ne semble pas avoir de fonction logique. En Effet, elle se trouve à l'intérieur d'une boucle qui dessine une "grosse" ligne entre deux points en traçant des cercles le long de cette ligne, et elle est répétée tel quel, pour chaque itération. Ou alors, c'est un résidu d'une première version de ton programme, ou alors, il faut la sortir de la boucle et la placer soit juste avant de for en ligne 42 (mais alors elle est entièrement "biffée" par la nuée de petits cercles), ou alors il faut la placer après le next x en ligne 50.


Dernière édition par Klaus le Mar 13 Juil 2010 - 0:32, édité 1 fois
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
sergeauze

sergeauze


Nombre de messages : 391
Age : 71
Localisation : Hautes Alpes France
Date d'inscription : 09/01/2010

mon fil rouge de l'ete Empty
MessageSujet: Re: mon fil rouge de l'ete   mon fil rouge de l'ete EmptyMar 13 Juil 2010 - 0:28

c'est les boucles for next
for x= a to b
si a est superieur a b le systeme ne renvoit pas de message d'erreur et me trace un seul cercle au lieu de tracer le segment fait lui, de plusieurs cercles successifs
Revenir en haut Aller en bas
http://sergeauze.blog-video.tv/
Klaus

Klaus


Nombre de messages : 12276
Age : 74
Localisation : Ile de France
Date d'inscription : 29/12/2009

mon fil rouge de l'ete Empty
MessageSujet: Re: mon fil rouge de l'ete   mon fil rouge de l'ete EmptyMar 13 Juil 2010 - 0:35

Je me suis mal exprimé. Il s'agit des lignes 23 et 27 qui chargent respectivement les variables xb et yb avec une valeur PAS ENCORE DEFINIE, mais pas la suite, ces variables ne sont jamais réutilisées.

Dans mon post précédent, j'ai fait une autre remarque, concernant un 2d_line.

EDIT

Je pense que devant la ligne 55, il manque un w = 1.

Puis, en ligne 60, tu modifies la variable w dans la boucle, et cette variable est pourtant le pas de la boucle. C'est dangereux, cela ! Il vaut mieux éviter de toucher aux variables constitutrices de la boucle !

EDIT

Je suis tombé sur une anomalie. Non pas une erreur, mais une anomalie qui est due au code. Je fais un triangle (nombre de sommets 3). Après le troisième click à droite, il trace 2 "grosses" lignes entre point 1 et point 2 et entre point 2 et point 3. Mais il ne trace que la simple ligne 2d_line entre point 3 et point 1 dès que la coordonnée horizontale x du point 3 est entre celles des points 1 et 2. Exemple:
Point 1: xa=228 ya=112
Point 2: xa=667 ya=245
Point 3: xa=391 ya=337

Dès que xa(point3)<xa(point1) ou xa(point3)>xa(point2) tout marche bien. A creuser...

Bon, pour ce soir, je vais me coucher; je continuerai demain.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
sergeauze

sergeauze


Nombre de messages : 391
Age : 71
Localisation : Hautes Alpes France
Date d'inscription : 09/01/2010

mon fil rouge de l'ete Empty
MessageSujet: Re: mon fil rouge de l'ete   mon fil rouge de l'ete EmptyMar 13 Juil 2010 - 0:51

je me damande s'il est possible de faire un scan_ line pour remplir la figure vu que lorsque 2 points ont la meme valeur en x ou (tres proche),on affiche pas de y.
Merci pour ton attention
Revenir en haut Aller en bas
http://sergeauze.blog-video.tv/
Jack
Admin
Jack


Nombre de messages : 2386
Date d'inscription : 28/05/2007

mon fil rouge de l'ete Empty
MessageSujet: Re: mon fil rouge de l'ete   mon fil rouge de l'ete EmptyMar 13 Juil 2010 - 6:52

Promis, je te fais une commande de remplissage pour la prochaine version instantanée.
Revenir en haut Aller en bas
https://panoramic.1fr1.net
Nardo26

Nardo26


Nombre de messages : 2294
Age : 55
Localisation : Valence
Date d'inscription : 02/07/2010

mon fil rouge de l'ete Empty
MessageSujet: Re: mon fil rouge de l'ete   mon fil rouge de l'ete EmptyMar 13 Juil 2010 - 9:07

Bonjour,

A titre pédagogique, on trouve des infos intéressante sur ce site :
http://raphaello.univ-fcomte.fr/ig/algorithme/algorithmique.htm
Pas vraiment le temps de m'y pencher à fond mais peut être que tu y trouveras ton bonheur....

Regarde le principe du "pixel-germe" (2eme algo qui ne nécessite pas de récursivité). Les exemples sont en C mais le principe lui est écrit en français...

ou alors :
http://www-master.ufr-info-p6.jussieu.fr/2006/Ajouts/Master_esj_2006_2007/IMG/pdf/dessin2D3D.pdf
Revenir en haut Aller en bas
http://nardo26.lescigales.org
sergeauze

sergeauze


Nombre de messages : 391
Age : 71
Localisation : Hautes Alpes France
Date d'inscription : 09/01/2010

mon fil rouge de l'ete Empty
MessageSujet: Re: mon fil rouge de l'ete   mon fil rouge de l'ete EmptyMar 13 Juil 2010 - 14:34

ça a l'air de vouloir fonctionner je ne touche plus a cette partie du programme
quelques messages d'erreur que j'ai notes pour memoire apres la fin du programme .
Il fallait rajouter w=1 a la ligne 61
Code:

      dim p, xa(1000),ya(1000), n ,a ,v ,x,y ,b ,w
' je saisis les sommets et je trace les arretes du polygone convexe
    ' pb boucle a pas negatif qui n'occasione aucun message d'erreur !
  ' pb pour le scanline
    rem "escape pour sortir"
    rem click droit

  print "NOMBRE DE SOMMETS
  input n : '  nombre de cotes= nbr de sommets
      height 0,1000
      width 0,1000
      p=0
      2d_fill_color 255,210,0
      2d_pen_color 85,89,216
  repeat
    if key_down_code  = 27 then terminate
    if mouse_right_down(0)= 1
      wait 10
      p=p+1

 
      xa(p)= mouse_x_right_down(0):print  ".    xa=",xa(p)


   
      ya(p)= mouse_y_right_down(0) :print  ";  .ya=",ya(p)

      print "............p=",p
 
            2d_circle xa(p),ya(p),8
       


        end_if
  until p=n

  ' ....................................................................
  for p= 1 to n -1
              print  ".;;;;;;;    xa=",xa(p)
              print  ";;;;;;;;  .ya=",ya(p)

                w=1
            if xa(p)> xa(p+1) then w=-1
      for x=xa(p) to xa(p+1)step w

            a=(ya(p+1)-ya(p))/(xa(p+1)-xa(p))

            b= ya(p)-a*xa(p)
            y=(a*x)+b
            2d_circle x,y,3
              w=1
        next x
       
  next p
wait 1003

 ' ................................................................


      w=1
          if xa(1)> xa(p) then  w =-1
    wait 100
  for x= xa(1) to xa(p) step w
      if xa(1)> xa(p) then w =-1
      if xa(1)- xa(p)=0 then    xa(p)= xa(p)+0.01
          a=(ya(p) -ya(1))/(xa(p) -xa(1 ))
          b=ya(p)-a*xa(p)
          y=(a*x)+b
          w=1
            2d_fill_color 255,0,0
          2d_circle x,y,5
   
  next x
    print ".......a....",a
 ' ....................................................................
  end
 ' ...........................................
  'NAN  is not a valid floatinng point value
  'INF  is not a valid floatinng point value
  ' 39  2d_line  xa(p),ya(p),xa(p+1),ya(p+1)
  ' 53    2d_line  xa(1),ya(1) , xa(p),ya(p)
Merci a Jack et aux autres intervenants
Je continue sur ma lancee pour voir si je peux encore avancer
Revenir en haut Aller en bas
http://sergeauze.blog-video.tv/
Contenu sponsorisé





mon fil rouge de l'ete Empty
MessageSujet: Re: mon fil rouge de l'ete   mon fil rouge de l'ete Empty

Revenir en haut Aller en bas
 
mon fil rouge de l'ete
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Le jeu de l'Ane Rouge
» Fermeture Form par la croix rouge
» Solution ultime pour bloquer la croix rouge !
» Appliquer un filtre (rouge, vert ou bleu) à une image bitmap

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: PANORAMIC :: Présentation et bavardage-
Sauter vers: