À propos de la routine surface()

Pour toute demande d'aide sur des exemples non finalisés, c'est ici.
Les exemples aboutis et intéressants seront ajoutés aux sous-forums qui suivent.

À propos de la routine surface()

Message non lupar Fabrice » Lun 16 Jan 2012, 14:57

Bonjour,
L'énoncé de l'exercice que je veux illustrer est le suivant :
Code: Tout sélectionner
Une galette circulaire de rayon 15 cm a été entamée depuis le centre. La part entamée est-elle inférieure, égale ou supérieure au quart de la galette ?

Je joins un dessin fait dans le plan de la galette :http://www.fileupyours.com/view/310238/part.pdf
AO = 15, OH = 7 et HC = 6.
Le code est le suivant :
Code: Tout sélectionner
import three;
size(7cm,0);
currentlight=nolight;
currentprojection=perspective(
camera=(-6.10285631430519,36.029455663151,4.5056187380542),
up=(0.00212394924123073,-0.0148253878706536,0.123534632293459),
target=(-3.50925769342241,-0.954817014611455,0.0225523065454158),
zoom=1,
angle=6.53206876661594,
autoadjust=false);
pair z1=(0,0);
real r=15, a1=-62.18, a2=-267.89;
path p=z1--arc(z1,r,a1,a2)--cycle;
path3 p3=path3(p,XYplane);
draw(surface(p3),lightgray,0.8bp+black);
draw(shift(0.8*Z)*surface(p3),lightgray,0.8bp+black);
draw(extrude(p,0.8*Z),lightgray,0.8bp+black);

On verra de suite le problème. De plus, je souhaiterais coder la figure à partir des indications ci-dessus.
Merci.
Fabrice
 
Messages: 30
Inscription: Sam 13 Mar 2010, 11:41

Re: À propos de la routine surface()

Message non lupar GM » Lun 16 Jan 2012, 15:28

Puis-je repartir de zéro pour faire une proposition ?

Si les données sont celles précisées... je n'ai pas trop envie de voir ce genre de choses : a1=-62.18, a2=-267.89.
Index des fonctions - Exemple de lien donnant le résultat d'une recherche sur les mots 'arc' et 'triple' : http://gmaths.net/asy/index/?filtre=arc triple
Avatar de l’utilisateur
GM
Administrateur du site
Administrateur du site
 
Messages: 627
Inscription: Dim 7 Mar 2010, 14:50

Re: À propos de la routine surface()

Message non lupar GM » Lun 16 Jan 2012, 15:34

Fabrice a écrit:On verra de suite le problème.


Si le problème était celui des traits de trop sur les bases, le patch rapide est celui-ci :

remplacer :

Code: Tout sélectionner
draw(surface(p3),lightgray,0.8bp+black);
draw(shift(0.8*Z)*surface(p3),lightgray,0.8bp+black);

par :

Code: Tout sélectionner
draw(surface(p3),lightgray);
draw(p3,0.8bp+black);

draw(shift(0.8*Z)*surface(p3),lightgray);
draw(shift(0.8*Z)*p3,0.8bp+black);
Index des fonctions - Exemple de lien donnant le résultat d'une recherche sur les mots 'arc' et 'triple' : http://gmaths.net/asy/index/?filtre=arc triple
Avatar de l’utilisateur
GM
Administrateur du site
Administrateur du site
 
Messages: 627
Inscription: Dim 7 Mar 2010, 14:50

Re: À propos de la routine surface()

Message non lupar GM » Lun 16 Jan 2012, 15:44

(troisième partie de ma réponse)

Pour les cotations, je donne aussi une référence rapide pour dépanner rapidement : ce sujet.
On y suggère deux méthodes différentes : tout dépend... si c'est une figure destinée à être tournée ou pas.
Index des fonctions - Exemple de lien donnant le résultat d'une recherche sur les mots 'arc' et 'triple' : http://gmaths.net/asy/index/?filtre=arc triple
Avatar de l’utilisateur
GM
Administrateur du site
Administrateur du site
 
Messages: 627
Inscription: Dim 7 Mar 2010, 14:50

Re: À propos de la routine surface()

Message non lupar Fabrice » Lun 16 Jan 2012, 17:21

Salut,
GM a écrit:Puis-je repartir de zéro pour faire une proposition ?

Pourquoi tu ne pourrais pas ?

GM a écrit: je n'ai pas trop envie de voir ce genre de choses : a1=-62.18, a2=-267.89.

J'ai résolu l'exercice à la "manière" des élèves en faisant de la trigonométrie élémentaire, sans chercher la complication !

La figure n'est pas destinée à être bougée mais seulement à illustrer un énoncé de dns.

GM a écrit:
Fabrice a écrit:On verra de suite le problème.


Si le problème était celui des traits de trop sur les bases


Pourquoi ces traits en trop ?
En corrigant un peu mon code, il suffit de faire :
Code: Tout sélectionner
draw(surface(p3),white);
draw(shift(0.8*Z)*surface(p3),white);
draw(extrude(p,0.8*Z),white,0.8bp+red);

Merci.
Fabrice
 
Messages: 30
Inscription: Sam 13 Mar 2010, 11:41

Re: À propos de la routine surface()

Message non lupar GM » Lun 16 Jan 2012, 17:39

Fabrice a écrit:Pourquoi ces traits en trop ?


Une surface est un ensemble de "carreaux" de Bezier de ce genre là :

Image


Une base de ta galette est constituée de deux carreaux. L'un des deux "pen" est pour les mettre en évidence.

Tu remplacerais :

Code: Tout sélectionner
draw(surface(p3),lightgray,0.8bp+black);

par ceci :

Code: Tout sélectionner
draw(surface(p3),nu=5,nv=2,lightgray,0.8bp+black);

et tu aurais chacun des deux carreaux (2 étant le minimum "obligatoire" dans ton exemple compte tenu de la complexité de ta base)...
Image

éclaté en 5x2 "carreaux" :
Image
Index des fonctions - Exemple de lien donnant le résultat d'une recherche sur les mots 'arc' et 'triple' : http://gmaths.net/asy/index/?filtre=arc triple
Avatar de l’utilisateur
GM
Administrateur du site
Administrateur du site
 
Messages: 627
Inscription: Dim 7 Mar 2010, 14:50

Re: À propos de la routine surface()

Message non lupar GM » Lun 16 Jan 2012, 17:52

GM a écrit:Une base de ta galette est constituée de deux carreaux.

Si tu te dis que :

"c'est bizarre : le "carreau" donné en exemple était défini à partir de 4 points...
alors que pour galette, il semble n'y avoir que trois points pour chacun des carreaux"

je te cite la doc :

Planar Bezier surfaces patches are constructed using Orest Shardt’s bezulate routine, which decomposes (possibly nonsimply connected) regions bounded (according to the zerowinding fill rule) by simple cyclic paths (intersecting only at the endpoints) into subregions bounded by cyclic paths of length 4 or less.


Tu auras lu la fin : "4 ou moins".

A propos de nu et nv :

The parameters nu and nv specify the number of subdivisions for drawing optional mesh lines for each Bezier patch.
Index des fonctions - Exemple de lien donnant le résultat d'une recherche sur les mots 'arc' et 'triple' : http://gmaths.net/asy/index/?filtre=arc triple
Avatar de l’utilisateur
GM
Administrateur du site
Administrateur du site
 
Messages: 627
Inscription: Dim 7 Mar 2010, 14:50

Re: À propos de la routine surface()

Message non lupar GM » Lun 16 Jan 2012, 18:16

Pour être complet... par rapport à ta question, voilà encore ce que tu peux obtenir avec ton code initial, sous acrobat-reader :

Image


Tu as le détail des parties qui constituent l'image prc... et tu peux les cocher-décocher.

Constate que les bases sont faites en deux parties... parties que j'appelle "carreaux", que la doc appelle "patch"... et qui s'appelle bizarrement "node" dans acrobat-reader.
Index des fonctions - Exemple de lien donnant le résultat d'une recherche sur les mots 'arc' et 'triple' : http://gmaths.net/asy/index/?filtre=arc triple
Avatar de l’utilisateur
GM
Administrateur du site
Administrateur du site
 
Messages: 627
Inscription: Dim 7 Mar 2010, 14:50

Re: À propos de la routine surface()

Message non lupar GM » Jeu 19 Jan 2012, 15:38

Ai-je rêvé... ou ai-je bien lu depuis mon smartphone au lycée... qu'il y avait une relance qui a disparu.
Le problème serait-il réglé ? :roll:
Index des fonctions - Exemple de lien donnant le résultat d'une recherche sur les mots 'arc' et 'triple' : http://gmaths.net/asy/index/?filtre=arc triple
Avatar de l’utilisateur
GM
Administrateur du site
Administrateur du site
 
Messages: 627
Inscription: Dim 7 Mar 2010, 14:50

Re: À propos de la routine surface()

Message non lupar Fabrice » Jeu 19 Jan 2012, 15:54

Salut,
Tout d'abord, je te remercie pour toutes ces explications supplémentaires (ce que je précisais dans le message qui a disparu !).

GM a écrit:Ai-je rêvé... ou ai-je bien lu depuis mon smartphone au lycée... qu'il y avait une relance qui a disparu.

Donc, tu n'a pas rêvé !
En fait, j'ai essayé autre chose sans que cela soit très convaincant. La figure ne doit pas être manipulée, j'ai donc essayé avec la routine distance() en compilant de cette manière :
Code: Tout sélectionner
asy -V -noprc -render=0 -f pdf fichier.asy

Le résultat est surprenant !
J'ai donc retiré le message pour essayer de comprendre ce qui s'est passé, mais je n'ai pas encore eu le temps de me pencher sur le problème.
Fabrice
 
Messages: 30
Inscription: Sam 13 Mar 2010, 11:41

Suivante

Retourner vers Les demandes d'aide

 


  • Articles en relation
    Réponses
    Vus
    Dernier message

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité