[solids] Structure skeleton

Tout ce qui concerne le langage Asymptote. Ce langage est supporté sur le forum via les balises asy.

Modérateur : gdm_asy

Règles du forum
Merci de soigner la rédaction de vos messages et de consulter ce sujet avant de poster. Pensez également à utiliser la fonction recherche du forum.
maurice
Utilisateur éprouvé
Utilisateur éprouvé
Messages : 399
Inscription : jeudi 25 mars 2010, 13:49

[solids] Structure skeleton

Message par maurice »

Bonjour,

J'ai cherché skeleton dans la doc officielle et j'ai trouvé :
The structure skeleton contains the three-dimensional wireframe used to visualize a
volume of revolution:
struct skeleton {
struct curve {
path3[] front;
path3[] back;
}
// transverse skeleton (perpendicular to axis of revolution)
curve transverse;
// longitudinal skeleton (parallel to axis of revolution)
curve longitudinal;
}
Et c'est tout ...

Si quelqu'un peut m'éclairer sur l'utiiité des ces structures et comment les utiliser, je veux bien lui payer 2 coups.
Il y a bien un exemple sur le wiki mais je n'ai pas trop bien compris (je n'ai pas trouvé silhouette dans la doc).
Je vois bien l'effet des commandes en les commentant, ... mais je vois pas trop comment manipuler tout ca.
D'une manière plus générale, je ne suis pas trop à, l'aise avec les modules 3d.

Je suis donc preneur de toute explication ou de toute aide qui concerne la 3d (et les solides).

Merci
Maurice
Asymptote :
----> Démarrage rapide : http://cgmaths.fr/Atelier/Asymptote/Asymptote.html
----> Documentation 3D : http://www.mathco.tuxfamily.org et si ça ne marche pas, essayez la version pdf

maurice
Utilisateur éprouvé
Utilisateur éprouvé
Messages : 399
Inscription : jeudi 25 mars 2010, 13:49

Re: [solids] skeleton transverse et longitudinal

Message par maurice »

Je viens de tomber sur un exemple de pivaldi :

Code : Tout sélectionner

import solids;
currentlight=light(paleyellow, viewport=false,(5,-5,10),(0,0,-10));
size(5cm,0);

draw(sphere(1,n=4*nslice), linewidth(bp), m=10);
draw(surface(sphere(1,n=4*nslice)), orange);
Même chose en commentant une des deux dernières lignes, je vois bien se qui se passe mais la doc est très pauvre sur le sens des paramètres : où puis trouver plus de précision ? Faut-il obligatoirement mattre le nez dans solids.asy ou three.asy ?

Maurice
Dernière modification par MB le jeudi 01 mai 2014, 10:37, modifié 2 fois.
Asymptote :
----> Démarrage rapide : http://cgmaths.fr/Atelier/Asymptote/Asymptote.html
----> Documentation 3D : http://www.mathco.tuxfamily.org et si ça ne marche pas, essayez la version pdf

chellier
Modérateur
Modérateur
Messages : 355
Inscription : samedi 25 juillet 2009, 12:25
Localisation : Le Creusot

Re: [solids] skeleton transverse et longitudinal

Message par chellier »

Bonjour,
Ces structures servent à visualiser les objets dans l'espace. Comme d'habitude, la doc est plutôt sommaire :(
Et pour en savoir plus, il faut faire un tour dans solids.asy, ou voir des exemples dans différentes galeries.

Un exemple :

Code : Tout sélectionner

size(5cm,0);
import solids;
settings.render=0; // à commenter si besoin
settings.prc=false; // à commenter si besoin

revolution CoRev=cone(O,1,2,axis=Z,n=1);

skeleton s;
CoRev.transverse(s,reltime(CoRev.g,.2)); // CoRev.g est la génératrice du cône
CoRev.transverse(s,reltime(CoRev.g,.5));
draw(s.transverse.back,linetype("4 4")+bp+red);
draw(s.transverse.front,bp+.8green);

skeleton s2;
CoRev.transverse(s2,reltime(CoRev.g,.7));
draw(s2.transverse.back,linetype("4 4")+bp+blue);
draw(s2.transverse.front,bp+.8magenta);

draw(CoRev);
Si ce n'est pas assez clair, essaye de préciser ta question :wink:

Christophe

maurice
Utilisateur éprouvé
Utilisateur éprouvé
Messages : 399
Inscription : jeudi 25 mars 2010, 13:49

Re: [solids] skeleton transverse et longitudinal

Message par maurice »

Merci Christophe,
chellier a écrit : Si ce n'est pas assez clair, essaye de préciser ta question :wink:
Christophe
Ce n'est pas que ce n'est pas clair, je peux reproduire un code similaire avec cone, cylindre, ...
Ce que je ne comprends pas c'est :

Code : Tout sélectionner

skeleton s;
Je ne vois pas à quoi ca sert (niveau syntaxe, je trouve ca inhabituel)...

Et sur l'exemple de pivaldi :

Code : Tout sélectionner

draw(sphere(1,n=4*nslice), linewidth(bp), m=10);
que signifie le n=4*nslice ? le m=10 ?

Merci

Maurice
Asymptote :
----> Démarrage rapide : http://cgmaths.fr/Atelier/Asymptote/Asymptote.html
----> Documentation 3D : http://www.mathco.tuxfamily.org et si ça ne marche pas, essayez la version pdf

maurice
Utilisateur éprouvé
Utilisateur éprouvé
Messages : 399
Inscription : jeudi 25 mars 2010, 13:49

Re: [solids] skeleton transverse et longitudinal

Message par maurice »

Re ...

Je t'ai piqué le code pour le cylindre et ai voulu faire un cylindre à l'envers :
{"png": {"width": 94, "height": 89}}
J'en viens à ma deuxième question : comment est réglé le "curentprojection" par défaut ... (pourquoi pour ton exemple il n'y en a pas besoin ?)
Y'a-t-il quelques règles à respecter ?
merci
bruno
Asymptote :
----> Démarrage rapide : http://cgmaths.fr/Atelier/Asymptote/Asymptote.html
----> Documentation 3D : http://www.mathco.tuxfamily.org et si ça ne marche pas, essayez la version pdf

chellier
Modérateur
Modérateur
Messages : 355
Inscription : samedi 25 juillet 2009, 12:25
Localisation : Le Creusot

Re: [solids] skeleton transverse et longitudinal

Message par chellier »

maurice a écrit : J'en viens à ma deuxième question : comment est réglé le "curentprojection" par défaut ... (pourquoi pour ton exemple il n'y en a pas besoin ?)
Y'a-t-il quelques règles à respecter ?
Aucune idée :oops: Je sais juste que pour des figures classiques, on peut s'en passer... (le cône renversé n'est apparemment pas classique :wink: )
Dans ton exemple, un rajoutant un "currentprojection", tout va bien. Sinon, voir cette figure : fonction_draw_de_solids.asy
maurice a écrit : que signifie le n=4*nslice ? le m=10 ?
Bon, voila les questions pénibles :D
D'après ce que j'ai compris (mais si quelqu'un veut rectifier, pas de problème :!: ), les solides de révolution sont construits par rotation de nslices génératrices, elles-même constituées de m points (là, j'ai un doute...). On peut augmenter le nombre par défaut pour plus de précision. En pratique, personnellement je garde les valeurs par défaut.
C'est dans ces cas que les manquements de la doc se font sentir, et il faut se plonger dans les fichiers comme solids.asy pour y lire les commentaires et essayer de comprendre comment sont construits les objets, structures, fonctions, etc. Mais je suis limité par mon niveau en anglais et en maths ! Alors si quelqu'un veut apporter des précisions, je suis preneur aussi !

Christophe

maurice
Utilisateur éprouvé
Utilisateur éprouvé
Messages : 399
Inscription : jeudi 25 mars 2010, 13:49

Re: [solids] Structure skeleton

Message par maurice »

Merci Christophe,

je vais essayer de digérer tout ca et même si j'ai le temps d'approfondir.
C'est quand tu veux pour les 2 coups.

Maurice
Asymptote :
----> Démarrage rapide : http://cgmaths.fr/Atelier/Asymptote/Asymptote.html
----> Documentation 3D : http://www.mathco.tuxfamily.org et si ça ne marche pas, essayez la version pdf

chellier
Modérateur
Modérateur
Messages : 355
Inscription : samedi 25 juillet 2009, 12:25
Localisation : Le Creusot

Re: [solids] Structure skeleton

Message par chellier »

maurice a écrit :C'est quand tu veux pour les 2 coups.
Vu la clarté des explications, un coup suffira :D

Christophe

maurice
Utilisateur éprouvé
Utilisateur éprouvé
Messages : 399
Inscription : jeudi 25 mars 2010, 13:49

Re: [solids] Structure skeleton

Message par maurice »

j'ai fait :
{}
et
{}
Est-il possible de ne pas faire apparaître les pointillés qui correspondent aux génératrices (dans le cercle de base dans le 1er exemple et au milieu dans le 2ème).

Dans le deuxième exemple, sur la moitié inférieure, les trait verticaux sont en pointillés, ils doivent être pris en compte avec la commande draw(s.transverse.back, dashed+black);
Y-a-t-il un moyen de résoudre ce (petit) problème sans tracer les segment correspondant.

Il y a aussi dans le premier exemple des traits en pointillés qui devarient être pleins...

Maurice
Asymptote :
----> Démarrage rapide : http://cgmaths.fr/Atelier/Asymptote/Asymptote.html
----> Documentation 3D : http://www.mathco.tuxfamily.org et si ça ne marche pas, essayez la version pdf

chellier
Modérateur
Modérateur
Messages : 355
Inscription : samedi 25 juillet 2009, 12:25
Localisation : Le Creusot

Re: [solids] Structure skeleton

Message par chellier »

Deux solutions incomplètes pour ce soir. Elles ne sont pas satisfaisantes et j'ai un peu bricolé (deux cylindres pour la deuxième figure seraient peut-être préférables)
{}
{}
Christophe

OG
Modérateur
Modérateur
Messages : 2293
Inscription : lundi 12 mars 2007, 11:20
Localisation : Rouen

Re: [solids] Structure skeleton

Message par OG »

Bonjour

solids ne permet pas la gestion de plusieurs solides. Si on a des objets par facettes, la solution donnée ici viewtopic.php?t=11745 ou la version de geospace modifié conviennent : on a les pontillés an plus.

Ici il faut tricher. J'ai cherché dans le forum car il me semble qu'il y avait eu un exemple similaire (après 3 pages d'archives, j'ai abandonné).
Soit on calcule tout seul le segment qui sera en pointillé, ou alors (ce que j'ai fait) on efface la zone. Voici le résultat :
{}
Voyant un petit effet de bord, je trace juste le demi-cercle en pointillé :
{}
Vu l'exemple du cône renversé, il doit y avoir un petit souci avec solids.asy.

O.G.