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
Sélection Emptypar Klaus Aujourd'hui à 7:53

» Je teste PANORAMIC V 1 beta 1
Sélection Emptypar Klaus Aujourd'hui à 7:52

» bouton dans autre form que 0
Sélection Emptypar leclode Hier à 11:59

» KGF_dll - nouvelles versions
Sélection Emptypar Klaus Hier à 9:41

» Gestion d'un système client-serveur.
Sélection Emptypar Klaus Hier à 8:23

» Editeur EliP 6 : Le Tiny éditeur avec 25 onglets de travail
Sélection Emptypar Froggy One Jeu 2 Mai 2024 - 9:16

» @Jack
Sélection Emptypar Jack Mar 30 Avr 2024 - 18:40

» trop de fichiers en cours
Sélection Emptypar papydall Lun 29 Avr 2024 - 21:39

» Une calculatrice en une ligne de programme
Sélection Emptypar jean_debord Dim 28 Avr 2024 - 6:47

» Form(résolu)
Sélection Emptypar leclode Sam 27 Avr 2024 - 15:59

» Bataille navale SM
Sélection Emptypar jjn4 Ven 26 Avr 2024 - 15:39

» Les maths du crocodile
Sélection Emptypar jean_debord Jeu 25 Avr 2024 - 8:37

» Naissance de Crocodile Basic
Sélection Emptypar jean_debord Jeu 25 Avr 2024 - 6:45

» Dessine-moi une galaxie
Sélection Emptypar jjn4 Lun 22 Avr 2024 - 11:47

» Erreur END_SUB
Sélection Emptypar jjn4 Lun 22 Avr 2024 - 11:43

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 à ne pas rater :
Funko POP! Jumbo One Piece Kaido Dragon Form : où l’acheter ?
Voir le deal

 

 Sélection

Aller en bas 
4 participants
AuteurMessage
Invité
Invité




Sélection Empty
MessageSujet: Sélection   Sélection EmptyDim 21 Nov 2010 - 13:42

Voici comment faire une sélection :

Code:
label time

dim x1,y1,x2,y2,x3,y3,truc

2d_target_is 0

timer 1
timer_interval 1,1
on_timer 1,time

end

time:
2d_pen_dot
if mouse_left_down(0)=1 then truc=1:x1=mouse_x_position(0):y1=mouse_y_position(0):cls:2d_rectangle x1,y1,mouse_x_position(0),mouse_y_position(0)
if mouse_left_up(0)=1 then cls:truc=0
if truc=1
  x2=mouse_x_position(0)
  y2=mouse_y_position(0)
  if x2=x3 and y2=y3 then return
  cls:2d_rectangle x1,y1,x2,y2
  x3=mouse_x_position(0)
  y3=mouse_y_position(0)
end_if
return
Revenir en haut Aller en bas
jjn4

jjn4


Nombre de messages : 2693
Date d'inscription : 13/09/2009

Sélection Empty
MessageSujet: +++   Sélection EmptyDim 21 Nov 2010 - 13:58

Ah oui, il y a de l'idée, là-dedans.
Cela pourrait sûrement pouvoir servir pour un jeu
ou un gestionnaire de dessin ?
scratch
Revenir en haut Aller en bas
http://jjn4.e-monsite.com
Klaus

Klaus


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

Sélection Empty
MessageSujet: Re: Sélection   Sélection EmptyDim 21 Nov 2010 - 14:44

Très joli. Pour effectuer une sélection effectuer une sélection dans un picture, il suffit de placer le numéro d'objet du picture dans la commande 2d_target_is et toutes les occurences de (0), et on peut commencer à traiter l'image:
Code:
label time

dim x1,y1,x2,y2,x3,y3,truc
dim no%
no% = 10

picture no%:width no%,400:height no%,400

2d_target_is no%

timer 1
timer_interval 1,1
on_timer 1,time

end

time:
2d_pen_dot
if mouse_left_down(no%)=1 then truc=1:x1=mouse_x_position(no%):y1=mouse_y_position(no%):cls:2d_rectangle x1,y1,mouse_x_position(no%),mouse_y_position(no%)
if mouse_left_up(no%)=1 then cls:truc=0
if truc=1
  x2=mouse_x_position(no%)
  y2=mouse_y_position(no%)
  if x2=x3 and y2=y3 then return
  cls:2d_rectangle x1,y1,x2,y2
  x3=mouse_x_position(no%)
  y3=mouse_y_position(no%)
end_if
return
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html En ligne
JL35




Nombre de messages : 7095
Localisation : 77
Date d'inscription : 29/11/2007

Sélection Empty
MessageSujet: Re: Sélection   Sélection EmptyDim 21 Nov 2010 - 16:06

Très intéressant, effectivement, c'est à creuser.
en ajoutant un petit peu au programme de Klaus, pour fixer le rectangle:
Code:
label time

dim x1,y1,x2,y2,x3,y3,truc
dim no%
no% = 10

picture no%:width no%,400:height no%,400

2d_target_is no%

timer 1
timer_interval 1,1
on_timer 1,time

end

time:
2d_pen_dot
if mouse_left_down(no%)=1 then truc=1:x1=mouse_x_position(no%):y1=mouse_y_position(no%):cls:2d_rectangle x1,y1,mouse_x_position(no%),mouse_y_position(no%)
if mouse_left_up(no%)=1 then 2d_pen_solid:2d_rectangle x1,y1,x2,y2:truc=0
if truc=1
  x2=mouse_x_position(no%)
  y2=mouse_y_position(no%)
  if x2=x3 and y2=y3 then return
  cls:2d_rectangle x1,y1,x2,y2
  x3=mouse_x_position(no%)
  y3=mouse_y_position(no%)
end_if
return
maintenant il faudrait pouvoir laisser le dessin en place pour en dessiner d'autres par-dessus, mais ça c'est moins évident.
Revenir en haut Aller en bas
Klaus

Klaus


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

Sélection Empty
MessageSujet: Re: Sélection   Sélection EmptyDim 21 Nov 2010 - 16:30

Le but initial, c'était d'opérer une sélection. le but est atteint: maintenant que le rectangle est fixé, on peut utiliser les coordonnées pour travailler avec cette aire - couper, effacer, noircir, remplacer par autre chose etc.

Pour tracer d'autres rectangles, il suffira de définir des tableaux de coordonnées au lieu de vatiables simples, d'avoir une variable qui pointe dans les tableaux et incrémenter chaque fois qu'on fixe un rectangle. Bien sûr, pour contre-balancer l'effacement qui a lieu pour pouvoir "tirer" le rectangle en cours, il faut les réafficher chaque fois qu'on affiche maintenant le rectangle de sélection, mais avec 2d_pen_solid.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html En ligne
JL35




Nombre de messages : 7095
Localisation : 77
Date d'inscription : 29/11/2007

Sélection Empty
MessageSujet: Re: Sélection   Sélection EmptyDim 21 Nov 2010 - 16:49

Ou alors ne pas effacer à chaque fois, mais dessiner les rectangles avec 2d_line et 2d_poly_to.
C'est embêtant de ne pas pouvoir faire de rectangles sans remplissage.

Mais c'est vrai que le but était la sélection, pas de faire des petits dessins.
Revenir en haut Aller en bas
dragonno




Nombre de messages : 341
Localisation : Près de Toulouse
Date d'inscription : 22/01/2009

Sélection Empty
MessageSujet: Re: Sélection   Sélection EmptyDim 21 Nov 2010 - 21:23

Excellent ta sélection, j'ai essayé le code de maître Klaus.

Bravo et merci Nicolas Wink
Revenir en haut Aller en bas
JL35




Nombre de messages : 7095
Localisation : 77
Date d'inscription : 29/11/2007

Sélection Empty
MessageSujet: Re: Sélection   Sélection EmptyLun 22 Nov 2010 - 12:26

L'inconvénient avec ce système c'est que si on charge une image dans le picture (pour pouvoir sélectionner une zone), elle est effacée à chaque clic de souris, alors on ne sait plus quoi sélectionner...
Revenir en haut Aller en bas
dragonno




Nombre de messages : 341
Localisation : Près de Toulouse
Date d'inscription : 22/01/2009

Sélection Empty
MessageSujet: Re: Sélection   Sélection EmptyLun 22 Nov 2010 - 12:32

De toutes façons il n'y a pas de commande pour copier une zone d'une image, donc sélectionner une zone d'image ne servira à rien.
Cette sélection ne pourra servir qu'à sélectionner des groupes de sprites ou de pictures ou d'objets c'est tout.
Revenir en haut Aller en bas
Klaus

Klaus


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

Sélection Empty
MessageSujet: Re: Sélection   Sélection EmptyLun 22 Nov 2010 - 13:10

Oh si, c'est intéressant pour manipuler un picture. Cosmos70 je fait d'ailleurs très bien dans certains de ses programmes publiés.

Il y a les fonctions
COLOR_PIXEL_BLUE(b,x,y)
COLOR_PIXEL_RED(b,x,y)
COLOR_PIXEL_GREEN(b,x,y)
qui retournent les valeurs RGB d'un pixel (x,y) de l'objet n (picture, form, ...)

On peut dont lire les pixels à l'intérieur du rectangle sélectionné, on peut en faire quelque chose, on peut même les réécrire avec la commande 2D_POINT x,y qui permet de dessiner un point (xy) avec la couleur définie par 2D_PEN_COLOR r,g,b. Ainsi, le bout de code suivant "ternit" la couleur d'un point d'un certain pourcentage:
Code:
dim x%,y%
picture 10
' on suppose le picture chargé avec quelque chose d'utile

x% = 17 : y% = 33
2d_target_is 10 : ' toutes les action 2d vont dans picture 10
2d_pen_width 1 : écrire avec 1 seul pixel de largeur
2d_pen_color color_pixel_red(10,x%,y%)*10/100,color_pixel_green(10,x%,y%)*10/100,color_pixel_blue(10,x%,y%)*10/100
2d_point x%,y% : réécrire le point

On peut bien sûr utiliser une séquence de ce style dans une boucle pour faire varier x% et y% dans les limites du rectangle choisi.

On peut aussi décaler la portion sélectionnée de l'image en ajoutant un offset à x% et y% en écriture dans la commande 2d_point, on peut "effacer" la sélection en choisissant 255 ou 0 pour des valeurs de 2d_pen_color, etc. On peut vraiment travailler avec le contenu des picture en Panoramic !
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html En ligne
dragonno




Nombre de messages : 341
Localisation : Près de Toulouse
Date d'inscription : 22/01/2009

Sélection Empty
MessageSujet: Re: Sélection   Sélection EmptyLun 22 Nov 2010 - 13:26

Tu as encore raison, décidément je parle trop vite, ça fait deux fois Wink
J'ai besoin de repos, vive les vacances Wink
Au fait, si on peut lire les pixels d'un picture et modifier les pixels d'un autre picture, on peut donc copier une portion d'image d'un picture vers un autre picture, chouette Wink

EDIT :
Moins chouette pour ma copie d'image, puisque il faut que l'image à copier soit déjà affichée pour que ça marche hors dans mon cas l'image doit etre chargée seulement en mémoire mais pas affichée (c'est pour copier les différentes parties d'une animation vers une image de fond).
Revenir en haut Aller en bas
Klaus

Klaus


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

Sélection Empty
MessageSujet: Re: Sélection   Sélection EmptyLun 22 Nov 2010 - 13:35

Seul moyen: charger l'image d'origine dans un picture caché (avec la commande hide n). Ainsi, le picture n'est pas visible mais utilisable pour le programme.

Mais attention : Gérer une animation de cette manière, pixel par pixel, dans une form ou un grand picture, ce sera très lent. Il vaut mieux bouger un sprite chargé de la bonne image à travers une scene_2d par la commande sprite_position n,x,y - c'est rapide.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html En ligne
dragonno




Nombre de messages : 341
Localisation : Près de Toulouse
Date d'inscription : 22/01/2009

Sélection Empty
MessageSujet: Re: Sélection   Sélection EmptyLun 22 Nov 2010 - 13:39

Oui bouger le sprite je le fais dans mon jeu de vaisseau c'est rapide.

Parfait pour le truc de l'image cachée Wink merci !

Ceci dit tu as raison, pas bon pour l'animation la copie de pixels :/

Je vais tester le sprite_file_load en animation dés que j'en serais là dans mon code Wink
(en mode application)

Revenir en haut Aller en bas
Invité
Invité




Sélection Empty
MessageSujet: Re: Sélection   Sélection EmptyVen 26 Nov 2010 - 22:45

- Rectangle fixe
- Sélection transparente
- Position de la souris dans la barre de titre
Code:

label time

dim x1,y1,x2,y2,x3,y3,truc

picture 1:width 1,400:height 1,400

2d_target_is 1

timer 2
timer_interval 2,1
on_timer 2,time

end

time:
caption 0,"X "+str$(mouse_x_position(1))+" Y "+str$(mouse_y_position(1))

2d_pen_dot
if mouse_left_down(1)=1 then file_save 1,"C:\Image.bmp":truc=1:x1=mouse_x_position(1):y1=mouse_y_position(1):2d_rectangle x1,y1,mouse_x_position(1),mouse_y_position(1)
if mouse_left_up(1)=1 then file_load 1,"C:\Image.bmp":2d_pen_solid:2d_line x1,y1,x2,y1:2d_line x1,y2,x2,y2:2d_line x1,y1,x1,y2:2d_line x2,y1,x2,y2:file_save 1,"C:\Image.bmp":truc=0
if truc=1
  x2=mouse_x_position(1)
  y2=mouse_y_position(1)
  if x2=x3 and y2=y3 then 2d_pen_color 0,0,0:2d_pen_width 1:return
  file_load 1,"C:\Image.bmp":2d_line x1,y1,x2,y1:2d_line x1,y2,x2,y2:2d_line x1,y1,x1,y2:2d_line x2,y1,x2,y2
  x3=mouse_x_position(1)
  y3=mouse_y_position(1)
end_if
return
Revenir en haut Aller en bas
Klaus

Klaus


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

Sélection Empty
MessageSujet: Re: Sélection   Sélection EmptyVen 26 Nov 2010 - 23:50

Super ! Ca, ça s'appelle creuser un problème ! Il ne reste plus qu'à memoriser les coordonnées du rectangle dans une table, au moment de sa fixation, et on pourra jouer avec, colorer des zones avec floodfill, l'effacer etc. Très intéressant.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html En ligne
JL35




Nombre de messages : 7095
Localisation : 77
Date d'inscription : 29/11/2007

Sélection Empty
MessageSujet: Re: Sélection   Sélection EmptySam 27 Nov 2010 - 12:33

Ah oui ! ça c'est intéressant Nicolas !
Revenir en haut Aller en bas
Contenu sponsorisé





Sélection Empty
MessageSujet: Re: Sélection   Sélection Empty

Revenir en haut Aller en bas
 
Sélection
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Sélection d'une fonte.
» Sélection sur un grid
» Sélection et position du curseur
» Sélection dans un Memo
» Combo de sélection de couleurs

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