Page 1 sur 1

Deplier une sphere

Publié : ven. 13/juil./2012 11:39
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.

Re: Deplier une sphere

Publié : ven. 13/juil./2012 11:58
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"! ;)

Re: Deplier une sphere

Publié : ven. 13/juil./2012 12:15
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

Re: Deplier une sphere

Publié : lun. 16/juil./2012 13:05
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

Re: Deplier une sphere

Publié : lun. 16/juil./2012 13:49
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.

Re: Deplier une sphere

Publié : lun. 16/juil./2012 14:30
par kernadec
tu as aussi en mode polyèdre exemple:
http://atunivers.free.fr/250lys/skyglobe.html

Codialement

Re: Deplier une sphere

Publié : lun. 16/juil./2012 18:15
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 !

Re: Deplier une sphere

Publié : jeu. 19/juil./2012 18:19
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.

Re: Deplier une sphere

Publié : jeu. 19/juil./2012 19:44
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


Re: Deplier une sphere

Publié : jeu. 19/juil./2012 19:57
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

Re: Deplier une sphere

Publié : jeu. 19/juil./2012 20:38
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 :)

Re: Deplier une sphere

Publié : ven. 20/juil./2012 10:02
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.

Re: Deplier une sphere

Publié : ven. 20/juil./2012 11:02
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

Re: Deplier une sphere

Publié : ven. 20/juil./2012 12:16
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