Page 2 sur 2

Re: Comment créer un générateur de Map

Publié : dim. 24/juil./2016 19:03
par Micoute
J'ai pensé à un truc comme ça, forcément il y a mieux, c'est juste une idée.

Code : Tout sélectionner

If OpenWindow(0, 0, 0, 1200, 900, "", #PB_Window_SystemMenu|#PB_Window_ScreenCentered) 
  LargeurImage.i = 2000
  HauteurImage.i = 2000
  
  NumeroImage = CreateImage(#PB_Any, LargeurImage, HauteurImage, 32, RGB(255, 255, 255))
  
  XC = WindowWidth(0)/2 ;Centre X
  YC = WindowHeight(0)/2;Centre y
  
  If IsImage(NumeroImage)
    
    If StartDrawing(ImageOutput(NumeroImage))
      
      Dim Points(1, 120)
      
      X = 0
      
      For Angle = 0 To 360 Step 3
        If Angle < 90
          Amplitude = Random (450,400)
        ElseIf Angle > 90 And Angle < 180
          Amplitude = Random(440, 390)
        ElseIf Angle > 180 And Angle < 270
          Amplitude = Random(340, 310)
        Else
          Amplitude = Random(450, 310)
        EndIf  
        Points(0, X) = XC+Cos(Radian(Angle)) * Amplitude
        Points(1, X) = YC+Sin(Radian(Angle)) * Amplitude
        X + 1
      Next Angle
      
      For X = 1 To 120
        LineXY(Points(0, X - 1), Points(1, X - 1), Points(0, X), Points(1, X), 0)
      Next X
      
      LineXY(Points(0, 120), Points(1, 120), Points(0, 0), Points(1, 0), 0)
      
      FillArea(XC, YC, 0, RGB(0, 255, 0))

      StopDrawing()
    EndIf
  EndIf
  ImageGadget(#PB_Any, 0, 0, LargeurImage.i, HauteurImage.i, ImageID(NumeroImage.i))
  
  Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow
EndIf

Re: Comment créer un générateur de Map

Publié : dim. 24/juil./2016 20:26
par Zorro
ou comme ça :)

Code : Tout sélectionner

If OpenWindow(0, 0, 0, 800, 600, "", #PB_Window_SystemMenu|#PB_Window_ScreenCentered)
		LargeurImage.i = 800
		HauteurImage.i = 600
		NumeroImage = CreateImage(#PB_Any, LargeurImage, HauteurImage, 32, RGB(0, 120, 255))
		point_depart_x =LargeurImage/2 :point_depart_y = HauteurImage/2
		
		x_mem=point_depart_x
		y_mem=point_depart_y
		If IsImage(NumeroImage)
				If StartDrawing(ImageOutput(NumeroImage))
				
				
				For pas=1 to 500000
				
								Amplitude=random(10,10)							
								taille=Amplitude
								x = x_mem+Cos(Radian(Angle)) * Amplitude
								y = y_mem+Sin(Radian(Angle)) * Amplitude
							
								Angle=Angle+random(90,30)						
							;;	Linexy(x_mem,y_mem,x,y,rgb(0,125,0))
								box(x,y,taille,taille,rgb(0,random(125,20),0))
								x_mem=x
								y_mem=y
								Next pas								
						StopDrawing()
				EndIf
		EndIf
		ImageGadget(#PB_Any, 0, 0, LargeurImage.i, HauteurImage.i, ImageID(NumeroImage.i))
		Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow
EndIf 

Re: Comment créer un générateur de Map

Publié : dim. 24/juil./2016 21:30
par Shadow
Merci Dobro mais juste un tracer pour commencer :)

Re: Comment créer un générateur de Map

Publié : lun. 25/juil./2016 0:38
par Zorro
ben il suffit de recuperer le contour ...

Code : Tout sélectionner

If OpenWindow(0, 0, 0, 800, 600, "", #PB_Window_SystemMenu|#PB_Window_ScreenCentered)
		LargeurImage.i = 800
		HauteurImage.i = 600
		NumeroImage = CreateImage(#PB_Any, LargeurImage, HauteurImage, 32, RGB(0, 120, 255))
		NumeroImage2 = CreateImage(#PB_Any, LargeurImage, HauteurImage, 32, RGB(0, 120, 255))
		point_depart_x =LargeurImage/2 :point_depart_y = HauteurImage/2
		Dim coul_tab(LargeurImage.i,HauteurImage.i)
		x_mem=point_depart_x
		y_mem=point_depart_y
		If IsImage(NumeroImage)
				If StartDrawing(ImageOutput(NumeroImage))
								For pas=1 to 500000
										
										Amplitude=random(10,10)                     
										taille=Amplitude
										x = x_mem+Cos(Radian(Angle)) * Amplitude
										y = y_mem+Sin(Radian(Angle)) * Amplitude
										
										Angle=Angle+random(90,30)                  
										;;   Linexy(x_mem,y_mem,x,y,rgb(0,125,0))
										box(x,y,taille,taille,rgb(0,125,0))
										x_mem=x
										y_mem=y
								Next pas   
								For y=0 to 600-1
										For x=0 to 800-1
												coul_tab(x,y)=point(x,y)
										Next x
								Next y
						StopDrawing()
				EndIf
		Endif
		If IsImage(NumeroImage2)
				If StartDrawing(ImageOutput(NumeroImage2))
								Drawingmode(#PB_2DDrawing_Outlined  )
								; le traceur x
								For y=0 to 600-1
										For x=0 to 800-1
												coul=coul_tab(x,y)
												if coul<>coul_mem and coul<>$0
														couleur=$0
												Else 
														couleur=rgb(255,255,255)
												Endif
												plot(x,y,couleur)
												coul_mem=coul
										Next x
								Next y
								; le traceur y
								For x=1 to 800-1
										For y=1 to 600-1
												coul=coul_tab(x,y)
												if coul<>coul_mem and coul<>$0
														couleur=RGB(159,0,146)
												Else 
														couleur=rgb(255,255,255)
												Endif
												cc=point(x,y)
												if cc=$0
														plot(x-1,y,$0)
												Endif
												plot(x,y,couleur)
												coul_mem=coul
										Next y
								Next x
						EndIf
				StopDrawing()
		EndIf
		
		
		
		; au choix
		;ImageGadget(#PB_Any, 0, 0, LargeurImage.i, HauteurImage.i, ImageID(NumeroImage.i)) ; map complete
		ImageGadget(#PB_Any, 0, 0, LargeurImage.i, HauteurImage.i, ImageID(NumeroImage2.i)) ; contour
		Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow
EndIf
; Epb


Re: Comment créer un générateur de Map

Publié : lun. 25/juil./2016 5:25
par Shadow
Pas mal :)
Se serais bien que le tracer tienne dans la fenêtre et que les ligne soit lisser :)

Re: Comment créer un générateur de Map

Publié : lun. 25/juil./2016 11:11
par Zorro
oui , peut etre, mais je vais m'arreter là ...

Re: Comment créer un générateur de Map

Publié : lun. 25/juil./2016 13:52
par Shadow
Ok en tous les cas merci de ton aide :)