Deplier une sphere

Généralités sur la programmation 3D
Mesa
Messages : 1126
Inscription : mer. 14/sept./2011 16:59

Deplier une sphere

Message par Mesa »

Connaissez-vous peparuka ?
C'est un logiciel qui permet de créer des maquettes en papier
à partir d'un modèle 3D et des textures.
http://www.tamasoft.co.jp/pepakura-en/

Mon but est de reproduire en purebasic une chose comme ça
http://cp.c-ij.com/fr/contents/3151/moon/index.html
http://cp.c-ij.com/fr/contents/3151/moo ... n_e_a4.pdf

A partir d'une map en projection orthogonal comme celle-ci
http://img511.imageshack.us/img511/4821 ... p1krl8.jpg
J'aimerai la plaquer sur une sphère puis la découper pour la projeter en 2D
sur une feuille de papier.
comme avec la lune ci dessus http://cp.c-ij.com/fr/contents/3151/moo ... n_e_a4.pdf

Y aurait-il un bout de code qui trainerait quelque part, surtout pour la découpe de la sphère. ?


Est-ce que j'aurais intérêt à utiliser blender ?
Sachant que mon but est aussi d'automatiser le processus, ne pas intervenir à la main.
http://www.etude-blender.fr/uv-depliage.php

Mesa.
Frenchy Pilou
Messages : 2194
Inscription : jeu. 27/janv./2005 19:07

Re: Deplier une sphere

Message par Frenchy Pilou »

Pour ceux qui voudrait ne pas utiliser Blender car un petit peu ardu et d'une courbe d'apprentissage un peu longue et pour les petits modèles... :)

Dans sketchup qui est beaucoup plus facile que Blender, il y a un petit plug qui permet de développer ses volumes à la main ;)

http://www.youtube.com/watch?v=gcnyFolpVBg

et celui-ci aussi du même auteur, plus élaboré, construit les "pattes"! ;)
Est beau ce qui plaît sans concept :)
Speedy Galerie
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Re: Deplier une sphere

Message par Backup »

la technique consiste à imprimer des bandes entre "pôle nord" et "pôle sud" (pour un sphérique, tu choisi ton pôle comme tu veux) donc en pointe aux pôle et plus large au niveau de l'équateur, et les coller une à une... paraît que cela donne un bon résultat.
apres faire le logiciel qui dessine a partir d'une image ces fameuses bandes , oui en purebasic c'est faisable

faut trouver un Matheux dans le coin :)

voici ce que ça donnerai :

Image
Image

ou bien :

ImageImageImageImage

voir ce post :

http://www.bruno.postle.net/2001/ip-slicer/


voir ici aussi :)
tout les globes du system solaire :
http://www.vendian.org/mncharity/dir3/planet_globes/

ceci : Image

donne :
ImageImage


il existe apparemment un plugin GIMP pour faire ça :
http://www.vendian.org/mncharity/dir3/p ... e_gore_map
Avatar de l’utilisateur
kernadec
Messages : 1606
Inscription : ven. 25/avr./2008 11:14

Re: Deplier une sphere

Message par kernadec »

Bonjour Mesa
le problème se situe au niveau des images pour appliquer des déformations
sphériques coniques elliptiques etc... c'est pas chose facile.
voilà ici quelques exemples de projections..
http://acdsweb.free.fr/textes/Davidowic ... carto.html

Cordialement
Mesa
Messages : 1126
Inscription : mer. 14/sept./2011 16:59

Re: Deplier une sphere

Message par Mesa »

Merci à tous,

Je vais faire quelques essais de codes voir si j'arrive à quelque chose.

J'ai découpé certaines cartes sur du papier comme la représentation de Goode mais une fois recollée, ça ne donne rien.

Je cherche toujours des infos supplémentaires sur des projections "en tranches", à l'occasion. Il est difficile de trouver les math associés à ces projections en tranche. Je vais commencé par les codes proposés dans le post de Dobro.

Mesa.
Avatar de l’utilisateur
kernadec
Messages : 1606
Inscription : ven. 25/avr./2008 11:14

Re: Deplier une sphere

Message par kernadec »

tu as aussi en mode polyèdre exemple:
http://atunivers.free.fr/250lys/skyglobe.html

Codialement
comtois
Messages : 5186
Inscription : mer. 21/janv./2004 17:48
Contact :

Re: Deplier une sphere

Message par comtois »

J'ai vu ça sur dvp, je pense qu'il s'agit du même sujet ? Il y a des liens vers des cours ou des thèses de doctorats, bon courage !
http://purebasic.developpez.com/
Je ne réponds à aucune question technique en PV, utilisez le forum, il est fait pour ça, et la réponse peut profiter à tous.
Mesa
Messages : 1126
Inscription : mer. 14/sept./2011 16:59

Re: Deplier une sphere

Message par Mesa »

J'ai pu traduire un code pearl en purebasic:

Code : Tout sélectionner

;{- Enumerations / DataSections
;{ Windows
Enumeration
  #Window_0
EndEnumeration
;}
;{ Gadgets
Enumeration
  #Button_0
  #Button_1
  #ScrollArea_1
  #Progressbar_0
  #Progressbar_1
  #Progressbar_2
  #TextGadget_0
  #TextGadget_1
  #StringGadget_0
  #StringGadget_1
;   #Image_1
  #Image_2
;   #Image_3
;   #Image_4
EndEnumeration
;}
;{ Images
; Enumeration
;   #Image_Image_2
; EndEnumeration
;}
Define.l Event, EventWindow, EventGadget, EventType, EventMenu
;}

Global x.f, y.f, z.f
Global rho.f, theta.f, phi.f, theta_offset.f
Global in, out, in_width, in_height


;UseJPEG2000ImageDecoder
;UseJPEG2000ImageEncoder
UseJPEGImageDecoder()
UseJPEGImageEncoder()
UsePNGImageDecoder()
UsePNGImageEncoder()
UseTGAImageDecoder()
UseTIFFImageDecoder()

Procedure spherical_to_cartesian( rrho.f, ttheta.f, pphi.f )
  x= rrho*Cos(ttheta)*Sin(pphi)
  y= rrho*Sin(ttheta)*Sin(pphi)
  z= rrho*Cos(pphi)
EndProcedure

Procedure cartesian_to_spherical( xx.f, yy.f, zz.f )
  rho= Sqr(xx*xx+yy*yy+zz*zz)
  theta= ATan2(xx,yy)
  phi= ACos(zz/rho)
EndProcedure

Procedure getcolour (xx.f, yy.f, zz.f)
  Protected rrrho.f,tttheta.f,ppphi.f
  Protected u,v
  rrrho= Sqr(xx*xx+yy*yy+zz*zz)
  tttheta= ATan2(xx,yy)
  ppphi= ACos(zz/rrrho)
  ;cartesian_to_spherical( xx, yy, zz );my ($rho, $theta, $phi) = ;
  tttheta + theta_offset;
  u = Int ( ( tttheta / ( 2 * #PI ) ) * in_width );
  v = Int ( in_height - ( ( ppphi / #PI ) * in_height ) );
  StartDrawing(ImageOutput(in))
  
  colour = Point(u, v);my $colour = $in->Get( "pixel[$u,$v]" );
  StopDrawing()
  ;Debug colour
  ProcedureReturn colour
EndProcedure


Procedure tranche(nbre_de_panel, circonference, image$ )
  ;<number of panels> <circumference> <filename> exemple  $0 16 1000 input.jpg
  Protected n,out_size,out_filetype$,out_height,out_width,rho_out.f, phi_out.f
  Protected y_out, x_out, junk_out, z_out
  ;Dim image_out(12)
  n = nbre_de_panel
  
  SetGadgetAttribute(#ProgressBar_0, #PB_ProgressBar_Maximum, n)
  SetGadgetAttribute(#ProgressBar_1, #PB_ProgressBar_Maximum, out_width)
  SetGadgetAttribute(#ProgressBar_2, #PB_ProgressBar_Maximum, out_height)
  
  out_size = circonference;  output circumference
  out_filetype$ = "png";  can be changed to tif, gif, jpg or whatever..
  out_height = Int ( out_size / 2 );
  out_width = Int ( ( out_size / #PI ) * Tan( #PI / n ) );
  rho_out = out_height / #PI;  output radius
  
  in = LoadImage(#PB_Any, image$);
  
  in_width = ImageWidth(in)
  in_height =  ImageHeight(in)
  Debug "Input image is " + Str(in_width) + " x " + Str(in_height)
  SetWindowTitle(#Window_0,"Input image is " + Str(in_width) + " x " + Str(in_height))

  out = CreateImage(#PB_Any, out_width*n, out_height)
  StartDrawing(ImageOutput(out))
  Box(0,0,out_width*n, out_height,$ffffff);
  StopDrawing();
  
  SetGadgetState(#ProgressBar_0, 0)
  For panel = 0 To n-1
    SetGadgetState(#ProgressBar_0, panel)
    Debug panel
    theta_offset = ( #PI / n ) * ( panel + 0.5 ) * 2;
    ;Debug theta_offset
        
     SetGadgetState(#ProgressBar_1, 0)
    For u = 0 To out_width - 1
      ;Debug "u " + Str(u)
      SetGadgetState(#ProgressBar_1, u)
       ;SetGadgetState(#ProgressBar_2, 0)
      For v = 0 To out_height - 1;
        ;SetGadgetState(#ProgressBar_2, v)
        ;Debug "v " + Str(v)
        y_out = u - ( out_width / 2 );
        
        phi_out = ( ( v / out_height ) * #PI );   # phi is inclination
        
        ;Debug phi_out    
        spherical_to_cartesian( rho_out, 0, phi_out );
        x_out=x
        junk-out=y
        z_out=z
        If  x_out >= 0 
          If  ATan(y_out/x_out) =< (#PI/n) 
            If  ( 0 - ATan(y_out/x_out)) =< (#PI/n) 
              
              colour = getcolour( x_out,y_out,z_out )
              
              StartDrawing(ImageOutput(out))
              Plot(u+out_width*panel,v,colour)
              StopDrawing()
              
            EndIf
          EndIf
        EndIf
      Next v
    Next u
    
  Next panel
  Debug "ok"
  SetGadgetState(#Image_2,ImageID(out))
  
  ;}
EndProcedure

Procedure OpenWindow_Window_0()
  If OpenWindow(#Window_0, 3, 2, 1020, 760, "Window_0", #PB_Window_SystemMenu|#PB_Window_SizeGadget|#PB_Window_MinimizeGadget|#PB_Window_TitleBar)
    ButtonGadget(#Button_0, 20, 15, 135, 30, "Ouvrir image")
    ButtonGadget(#Button_1, 170, 15, 135, 30, "Enregistrer image")
    ProgressBarGadget(#ProgressBar_0, 320, 3, 300, 15, 0, 100 )
    ProgressBarGadget(#ProgressBar_1, 320, 21, 300, 15, 0, 100 )
    ProgressBarGadget(#ProgressBar_2, 320, 39, 300, 15, 0, 100 )
    TextGadget(#TextGadget_0, 650, 7, 60, 28, "Tranches")
    TextGadget(#TextGadget_1, 650, 35, 60, 28, "Diamètre")
    StringGadget(#StringGadget_0, 720, 3, 50, 24, "12") 
    StringGadget(#StringGadget_1, 720, 30, 50, 24, "2048") 
    
    ScrollAreaGadget(#ScrollArea_1, 5, 60, 1000, 650, 3000, 1000, 100, #PB_ScrollArea_Single)
    ImageGadget(#Image_2, 10, 10, 565, 450, 0, #PB_Image_Border)
    CloseGadgetList()
  EndIf
EndProcedure

Procedure.s openimage()
  FichierParDefaut$ = ""   
  Filtre$ = "Images (*.jpg)|*.jpg;*.bmp|Tous les fichiers (*.*)|*.*"
  Filtre  = 0    ; utiliser  par défaut le premier des trois filtres possibles
  image$ = OpenFileRequester("Choisissez un fichier à charger", FichierParDefaut$, Filtre$, Filtre) 
  ProcedureReturn image$
EndProcedure

OpenWindow_Window_0()

;{- Event loop
Repeat
  Event = WaitWindowEvent()
  Select Event
      ; ///////////////////
    Case #PB_Event_Gadget
      EventGadget = EventGadget()
      EventType = EventType()
      If EventGadget = #Button_0
        image$=openimage()  
        DisableGadget(#Button_1, 1)
        If image$
          ;tranche(nbre_de_panel, circonference, image$ )
          tranche(Val(GetGadgetText(#StringGadget_0)), Val(GetGadgetText(#StringGadget_1)), image$ )
          ;   Else
          ;     MessageRequester("Information", "La sélection a été annulée.", 0)
          DisableGadget(#Button_1, 0)
          
        EndIf 
      ElseIf EventGadget = #Button_1
        outFichier$ = SaveFileRequester("Enregistrer l'image sous...", image$ + "(maquette).jpg", "*.*",0)
        If outFichier$
          Resultat = SaveImage(out, outFichier$ ,#PB_ImagePlugin_JPEG , 10 )
        EndIf
        ;   #PB_ImagePlugin_BMP  : Enregistre l'image en BMP (défaut).
        ;   #PB_ImagePlugin_JPEG : Enregistre l'image en JPEG (UseJPEGImageEncoder() doit être utilisé)
        ;   #PB_ImagePlugin_JPEG2000 : Enregistre l'image en JPEG2000 (UseJPEG2000ImageEncoder() doit être utilisé)
        ;   #PB_ImagePlugin_PNG  : Enregistre l'image en PNG  (UsePNGImageEncoder() doit être utilisé)
        Debug "enregistré"
      EndIf
      ; ////////////////////////
    Case #PB_Event_CloseWindow
      EventWindow = EventWindow()
      If EventWindow = #Window_0
        CloseWindow(#Window_0)
        Break
      EndIf
  EndSelect
ForEver
;
;}


Il est lent, pas du tout optimisé mais il fonctionne à peu près...

Si j'imprime une image créée avec ce code (avec 12 tranches), après découpe et collage, il semble qu'il manque "une tranche".
Si quelqu'un le fait, pourrait-il me dire si ça fait la même chose ?

Je préférerais faire ça (changement de repère) :
http://www.science-story.com/pdf/earth- ... del-a4.pdf

Si quelqu'un a une idée.

http://pubs.er.usgs.gov/djvu/PP/PP_1395.pdf

Mesa.
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Re: Deplier une sphere

Message par Backup »

ma derniere contrib

voici le mode Turbo
pour info : toujours mettre les images dans un tableau !! ( je l'ai deja indiqué sur le forum ;) )

toujours essayer de mettre les Startdrawing()--stopdrawing() en dehors des boucles !! ....c'est tres important pour la vitesse

ps : mes modifs sont indiquées dans le code ;)

voila bonne Vacances ...
( pour moi il fait toutes les tranches !!ma modif a peut etre arrangé le probleme :) )


j'ai mis un tableau de 2000x2000 ce qui limite les images a ce format ....

Code : Tout sélectionner

;{- Enumerations / DataSections
;{ Windows
Enumeration
	#Window_0
EndEnumeration
;}
;{ Gadgets
Enumeration
	#Button_0
	#Button_1
	#ScrollArea_1
	#Progressbar_0
	#Progressbar_1
	#Progressbar_2
	#TextGadget_0
	#TextGadget_1
	#StringGadget_0
	#StringGadget_1
	;   #Image_1
	#Image_2
	;   #Image_3
	;   #Image_4
EndEnumeration
;}
;{ Images
; Enumeration
;   #Image_Image_2
; EndEnumeration
;}
Define.l Event, EventWindow, EventGadget, EventType, EventMenu
;}


Global x.f, y.f, z.f
Global rho.f, theta.f, phi.f, theta_offset.f
Global  in, out, in_width, in_height
global Dim Tableau(2000, 2000) ; ajouté par Dobro


;UseJPEG2000ImageDecoder
;UseJPEG2000ImageEncoder
UseJPEGImageDecoder()
UseJPEGImageEncoder()
UsePNGImageDecoder()
UsePNGImageEncoder()
UseTGAImageDecoder()
UseTIFFImageDecoder()

Procedure spherical_to_cartesian( rrho.f, ttheta.f, pphi.f )
	x= rrho*Cos(ttheta)*Sin(pphi)
	y= rrho*Sin(ttheta)*Sin(pphi)
	z= rrho*Cos(pphi)
EndProcedure

Procedure cartesian_to_spherical( xx.f, yy.f, zz.f )
	rho= Sqr(xx*xx+yy*yy+zz*zz)
	theta= ATan2(xx,yy)
	phi= ACos(zz/rho)
EndProcedure

Procedure getcolour (xx.f, yy.f, zz.f)
	Protected rrrho.f,tttheta.f,ppphi.f
	Protected u,v
	rrrho= Sqr(xx*xx+yy*yy+zz*zz)
	tttheta= ATan2(xx,yy)
	ppphi= ACos(zz/rrrho)
	;cartesian_to_spherical( xx, yy, zz );my ($rho, $theta, $phi) = ;
	tttheta + theta_offset;
	u = Int ( ( tttheta / ( 2 * #PI ) ) * in_width );
	v = Int ( in_height - ( ( ppphi / #PI ) * in_height ) );
	;;;;;;; StartDrawing(ImageOutput(in))  ; enlevé par Dobro , plus besoin on a un tableau , 
	
	colour = tableau(u,v) ; enlev par Dobro Point(u, v);my $colour = $in->Get( "pixel[$u,$v]" );
	;StopDrawing()
	;Debug colour
	ProcedureReturn colour
EndProcedure


Procedure tranche(nbre_de_panel, circonference, image$ )
	;<number of panels> <circumference> <filename> exemple  $0 16 1000 input.jpg
	Protected n,out_size,out_filetype$,out_height,out_width,rho_out.f, phi_out.f
	Protected y_out, x_out, junk_out, z_out
	;Dim image_out(12)
	n = nbre_de_panel
	
	SetGadgetAttribute(#ProgressBar_0, #PB_ProgressBar_Maximum, n)
	SetGadgetAttribute(#ProgressBar_1, #PB_ProgressBar_Maximum, out_width)
	SetGadgetAttribute(#ProgressBar_2, #PB_ProgressBar_Maximum, out_height)
	
	out_size = circonference;  output circumference
	out_filetype$ = "png";  can be changed to tif, gif, jpg or whatever..
	out_height = Int ( out_size / 2 );
	out_width = Int ( ( out_size / #PI ) * Tan( #PI / n ) );
	rho_out = out_height / #PI;  output radius
	
	in = LoadImage(#PB_Any, image$);
	
	in_width = ImageWidth(in)
	in_height =  ImageHeight(in)
	Debug "Input image is " + Str(in_width) + " x " + Str(in_height)
	SetWindowTitle(#Window_0,"Input image is " + Str(in_width) + " x " + Str(in_height))
	; ************** ajout Dobro ****************
	StartDrawing(ImageOutput(in)) ; on met l'image en tableau pour mettre le Turbo
		for y1=0 to in_height  -1
			for x1=0 to in_width -1
				
				
				tableau(x1,y1)=point(x1,y1)
				
			next x1
		next y1
	StopDrawing();
	; *************************************************
	
	
	out = CreateImage(#PB_Any, out_width*n, out_height)
	StartDrawing(ImageOutput(out))
		Box(0,0,out_width*n, out_height,$ffffff);
	StopDrawing();
	
	SetGadgetState(#ProgressBar_0, 0)
	StartDrawing(ImageOutput(out))
		For panel = 0 To n-1
			SetGadgetState(#ProgressBar_0, panel)
			Debug panel
			theta_offset = ( #PI / n ) * ( panel + 0.5 ) * 2;
			;Debug theta_offset
			
			SetGadgetState(#ProgressBar_1, 0)
			For u = 0 To out_width - 1
				;Debug "u " + Str(u)
				SetGadgetState(#ProgressBar_1, u)
				;SetGadgetState(#ProgressBar_2, 0)
				For v = 0 To out_height - 1;
					;SetGadgetState(#ProgressBar_2, v)
					;Debug "v " + Str(v)
					y_out = u - ( out_width / 2 );
					
					phi_out = ( ( v / out_height ) * #PI );   # phi is inclination
					
					;Debug phi_out   
					spherical_to_cartesian( rho_out, 0, phi_out );
					x_out=x
					junk-out=y
					z_out=z
					If  x_out >= 0
						If  ATan(y_out/x_out) =< (#PI/n)
							If  ( 0 - ATan(y_out/x_out)) =< (#PI/n)
								colour = getcolour( x_out,y_out,-z_out )
								Plot(u+out_width*panel,v,colour)
							EndIf
						EndIf
					EndIf
				Next v
			Next u
			
		Next panel
	StopDrawing()
	Debug "ok"
	
	SetGadgetState(#Image_2,ImageID(out))
	
	;}
EndProcedure

Procedure OpenWindow_Window_0()
	If OpenWindow(#Window_0, 3, 2, 1020, 760, "Window_0", #PB_Window_SystemMenu|#PB_Window_SizeGadget|#PB_Window_MinimizeGadget|#PB_Window_TitleBar)
		ButtonGadget(#Button_0, 20, 15, 135, 30, "Ouvrir image")
		ButtonGadget(#Button_1, 170, 15, 135, 30, "Enregistrer image")
		ProgressBarGadget(#ProgressBar_0, 320, 3, 300, 15, 0, 100 )
		ProgressBarGadget(#ProgressBar_1, 320, 21, 300, 15, 0, 100 )
		ProgressBarGadget(#ProgressBar_2, 320, 39, 300, 15, 0, 100 )
		TextGadget(#TextGadget_0, 650, 7, 60, 28, "Tranches")
		TextGadget(#TextGadget_1, 650, 35, 60, 28, "Diamètre")
		StringGadget(#StringGadget_0, 720, 3, 50, 24, "12")
		StringGadget(#StringGadget_1, 720, 30, 50, 24, "2048")
		
		ScrollAreaGadget(#ScrollArea_1, 5, 60, 1000, 650, 3000, 1000, 100, #PB_ScrollArea_Single)
		ImageGadget(#Image_2, 10, 10, 565, 450, 0, #PB_Image_Border)
		CloseGadgetList()
	EndIf
EndProcedure

Procedure.s openimage()
	FichierParDefaut$ = ""   
	Filtre$ = "Images (*.jpg)|*.jpg;*.bmp|Tous les fichiers (*.*)|*.*"
	Filtre  = 0    ; utiliser  par défaut le premier des trois filtres possibles
	image$ = OpenFileRequester("Choisissez un fichier à charger", FichierParDefaut$, Filtre$, Filtre)
	ProcedureReturn image$
EndProcedure

OpenWindow_Window_0()

;{- Event loop
Repeat
	Event = WaitWindowEvent()
	Select Event
		; ///////////////////
		Case #PB_Event_Gadget
		EventGadget = EventGadget()
		EventType = EventType()
		If EventGadget = #Button_0
			image$=openimage() 
			DisableGadget(#Button_1, 1)
			If image$
				;tranche(nbre_de_panel, circonference, image$ )
				tranche(Val(GetGadgetText(#StringGadget_0)), Val(GetGadgetText(#StringGadget_1)), image$ )
				;   Else
				;     MessageRequester("Information", "La sélection a été annulée.", 0)
				DisableGadget(#Button_1, 0)
				
			EndIf
			ElseIf EventGadget = #Button_1
			outFichier$ = SaveFileRequester("Enregistrer l'image sous...", image$ + "(maquette).jpg", "*.*",0)
			If outFichier$
				Resultat = SaveImage(out, outFichier$ ,#PB_ImagePlugin_JPEG , 10 )
			EndIf
			;   #PB_ImagePlugin_BMP  : Enregistre l'image en BMP (défaut).
			;   #PB_ImagePlugin_JPEG : Enregistre l'image en JPEG (UseJPEGImageEncoder() doit être utilisé)
			;   #PB_ImagePlugin_JPEG2000 : Enregistre l'image en JPEG2000 (UseJPEG2000ImageEncoder() doit être utilisé)
			;   #PB_ImagePlugin_PNG  : Enregistre l'image en PNG  (UsePNGImageEncoder() doit être utilisé)
			Debug "enregistré"
		EndIf
		; ////////////////////////
		Case #PB_Event_CloseWindow
		EventWindow = EventWindow()
		If EventWindow = #Window_0
			CloseWindow(#Window_0)
			Break
		EndIf
	EndSelect
ForEver
;
;}

; EPB

Dernière modification par Backup le jeu. 19/juil./2012 20:51, modifié 4 fois.
Avatar de l’utilisateur
kernadec
Messages : 1606
Inscription : ven. 25/avr./2008 11:14

Re: Deplier une sphere

Message par kernadec »

bonsoir
pour moi aussi, il y a toutes les tranches c'est vraiment lent,
je vais essayer le code de Dobro.

merci Mesa pour le partage.

@Dobro : merci pour ta contribution et je te souhaite de bonnes vacances.

Wow 8O le Turbo ... ma fille dirait : "ça envoie du steak"

Cordialement
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Re: Deplier une sphere

Message par Backup »

petite modif de derniere secondes sur le code ;

lorsqu'on utilisait une image avec un texte , celui-ci etait a l'envers ;)

Merci a Mesa pour ce code :)
Mesa
Messages : 1126
Inscription : mer. 14/sept./2011 16:59

Re: Deplier une sphere

Message par Mesa »

Pour les tranches manquantes, je pensais à la maquette 3D.

Voici une maquette que j'ai imprimé en noir et blanc, il y a bien les 12 tranches mais une fois collées, il y a un manque.

Image

Uploaded with ImageShack.us

Mesa.
Avatar de l’utilisateur
kernadec
Messages : 1606
Inscription : ven. 25/avr./2008 11:14

Re: Deplier une sphere

Message par kernadec »

bonjour Mesa

l'image découpée en 12 portions en X représente le périmètre.
la hauteur Y de chaque tranche doit être égal a 2 fois le rayon de ce périmètre.
et chaque tranche doit avoir un arc de longueur d'un demi périmètre
donc chaque flèche et 1/24ème de périmètre,
pas prendre la corde de l'arc pour le calcule de la flèche , je pense que l'erreur est là...

cordialement
Avatar de l’utilisateur
kernadec
Messages : 1606
Inscription : ven. 25/avr./2008 11:14

Re: Deplier une sphere

Message par kernadec »

bonjour Mesa
je bats ma-coulpe dans le post précédent :?

je viens de vérifier avec un logiciel de dessin

il faut que la hauteur totale Y d'une tranche soit d'un demi périmètre.
donc cela doit donner un fichier découpé de ratio 1/2

ce qui est le cas pour ton image, donc le problème vient peut être de l'impression.

Cordialement
Répondre