Des nouvelles

Tout ce qui concerne l'utilisation ou l'installation d'Asymptote.

Modérateur: gdm_asy

Règles du forum
Merci d'éviter le style SMS dans vos messages et de penser à utiliser la fonction Recherche avant de poster un message. Pour joindre des fichiers à vos messages, consulter ce sujet.
> Penser à utiliser les balises Code pour poster du code.

Des nouvelles

Messagepar Ph. Ivaldi » Samedi 09 Février 2008, 15:12

Bonjour,
Des nouveautés sur mon site consacré à Asymptote:


Voilà... cela faisait longtemps que je voulais faire une page d'animations; c'est chose faite.
Ph. Ivaldi
Méga-utilisateur
 
Messages: 267
Inscription: Vendredi 12 Janvier 2007, 23:27
Statut actuel: Actif et salarié

Publicité

Re: [Asymptote] Des nouvelles

Messagepar MB » Samedi 09 Février 2008, 15:35

Très bien tout ça. :mrgreen:
Il va falloir que je regarde l'histoire des polyèdres car je pense en avoir besoin sous peu.
Sinon, c'est quoi l'histoire des fichiers OBJ ?
MB (Pas d'aide en Message Privé)
Merci d'utiliser $\LaTeX$ (voir ici) et d'éviter le style SMS pour la lisibilité des messages.
MB
Administrateur
 
Messages: 6890
Inscription: Samedi 28 Mai 2005, 13:23
Localisation: Créteil
Statut actuel: Actif et salarié | Enseignant

Re: [Asymptote] Des nouvelles

Messagepar rebouxo » Samedi 09 Février 2008, 15:49

Super, génial.

Une petite question, si on veut faire des solides, plus basiques (pyramides à base carrée par exemple). Comment faire ?

Olivier
rebouxo
Modérateur
 
Messages: 6938
Inscription: Mercredi 15 Février 2006, 13:18
Localisation: le havre
Statut actuel: Actif et salarié | Enseignant

Re: [Asymptote] Des nouvelles

Messagepar Ph. Ivaldi » Samedi 09 Février 2008, 15:56

MB a écrit:Il va falloir que je regarde l'histoire des polyèdres car je pense en avoir besoin sous peu.

Salut MB,

Pour l'instant l'extension ne fait pas grand chose: elle affiche juste un ensemble de polyèdres.
Dans le futur... peut-être...
MB a écrit:Sinon, c'est quoi l'histoire des fichiers OBJ ?

Les fichiers obj sont des fichiers texte qui contiennent des informations pour définir un objet 3D.
La plupart des gros logiciels de synthèse d'image en 3D peuvent exporter en .obj
Voir http://fr.wikipedia.org/wiki/Obj
Ph. Ivaldi
Méga-utilisateur
 
Messages: 267
Inscription: Vendredi 12 Janvier 2007, 23:27
Statut actuel: Actif et salarié

Re: [Asymptote] Des nouvelles

Messagepar MB » Samedi 09 Février 2008, 15:57

rebouxo a écrit:Une petite question, si on veut faire des solides, plus basiques (pyramides à base carrée par exemple). Comment faire ?


Bonne question, ça m'intéresse aussi ça. :mrgreen: (mais je ne sais pas si ce module le permet)
MB (Pas d'aide en Message Privé)
Merci d'utiliser $\LaTeX$ (voir ici) et d'éviter le style SMS pour la lisibilité des messages.
MB
Administrateur
 
Messages: 6890
Inscription: Samedi 28 Mai 2005, 13:23
Localisation: Créteil
Statut actuel: Actif et salarié | Enseignant

Re: [Asymptote] Des nouvelles

Messagepar Ph. Ivaldi » Samedi 09 Février 2008, 16:25

rebouxo a écrit:Une petite question, si on veut faire des solides, plus basiques (pyramides à base carrée par exemple). Comment faire ?


C'est très simple, il suffit de définir chaque face:

Code: Tout sélectionner
import polyhedron;
settings.tex="pdflatex";
settings.outformat="pdf"; // for opacity

polyhedron pyramid;
real sq2=sqrt(2)/2;
pyramid[0]=(sq2,-sq2,0)--(sq2,sq2,0)--(-sq2,sq2,0)--(-sq2,-sq2,0)--cycle;
pyramid[0]=pyramid[0]--cycle;
pyramid[1]=(sq2,-sq2,0)--(sq2,sq2,0)--(0,0,1)--cycle;
pyramid[2]=(sq2,sq2,0)--(-sq2,sq2,0)--(0,0,1)--cycle;
pyramid[3]=(-sq2,sq2,0)--(-sq2,-sq2,0)--(0,0,1)--cycle;
pyramid[4]=(-sq2,-sq2,0)--(sq2,-sq2,0)--(0,0,1)--cycle;
size(10cm);
polyhedron[] parr={pyramid};
filldraw(parr,new pen[]{lightgrey},op=0.9);
Fichiers joints
pyramid.png
pyramid.png (19.58 Kio) Vu 1329 fois
Ph. Ivaldi
Méga-utilisateur
 
Messages: 267
Inscription: Vendredi 12 Janvier 2007, 23:27
Statut actuel: Actif et salarié

Re: [Asymptote] Des nouvelles

Messagepar rebouxo » Samedi 09 Février 2008, 16:38

Si j'ai bien compris tu décris chacune des faces.
Et si je veux avoir une pyramide en fil de fer : pas de couleur sur les faces, mais des pointillés sur les arêtes cachées ?

C'est possible ?


Olivier
rebouxo
Modérateur
 
Messages: 6938
Inscription: Mercredi 15 Février 2006, 13:18
Localisation: le havre
Statut actuel: Actif et salarié | Enseignant

Re: [Asymptote] Des nouvelles

Messagepar P.Fradin » Samedi 09 Février 2008, 16:48

Bonjour à tous,

Si je puis me permettre, pourquoi ne pas faire une macro qui construit elle-même les faces? On lui fournit la liste des sommets puis la liste des faces mais avec les numéros de sommets au lieu des coordonnées. C'est ce que je propose dans mon programme (la macro MakePoly), cela donnerait pour cet exemple:

on définit les 4 sommets de base: s1, s2, s3, s4 puis le sommet du haut s5 (dans le sens direct), on construit ensuite la pyramide comme ceci (attention à l'orientation des faces):

Code: Tout sélectionner
pyramide:= MakePoly([s1,s2,s3,s4,s5],[4,3,2,1,jump,1,2,5,jump,2,3,5,jump,3,4,5,jump,4,1,5,jump])


L'avantage c'est qu'il devient alors plus facile d'écrire ensuite des macros qui calculent des sommets et construisent elle-même des polyèdres.
P.Fradin
 

Re: [Asymptote] Des nouvelles

Messagepar Ph. Ivaldi » Samedi 09 Février 2008, 16:58

rebouxo a écrit:Et si je veux avoir une pyramide en fil de fer : pas de couleur sur les faces, mais des pointillés sur les arêtes cachées ?

Pour du fil de fer il suffit de remplacer le filldraw(parr,...) par draw(parr).
Les arrêtes en pointillés ne sont pas encore implémentées; si quelqu'un a un algorithme à proposer, je suis preneur.
Ph. Ivaldi
Méga-utilisateur
 
Messages: 267
Inscription: Vendredi 12 Janvier 2007, 23:27
Statut actuel: Actif et salarié

Re: [Asymptote] Des nouvelles

Messagepar MB » Samedi 09 Février 2008, 17:03

Ph. Ivaldi a écrit:Les arrêtes en pointillés ne sont pas encore implémentées; si quelqu'un a un algorithme à proposer, je suis preneur.


En effet, ça ne doit pas être très simple tout ça ... :| (dans un cas général)
MB (Pas d'aide en Message Privé)
Merci d'utiliser $\LaTeX$ (voir ici) et d'éviter le style SMS pour la lisibilité des messages.
MB
Administrateur
 
Messages: 6890
Inscription: Samedi 28 Mai 2005, 13:23
Localisation: Créteil
Statut actuel: Actif et salarié | Enseignant

Re: [Asymptote] Des nouvelles

Messagepar Ph. Ivaldi » Samedi 09 Février 2008, 17:28

P.Fradin a écrit:Si je puis me permettre, pourquoi ne pas faire une macro qui construit elle-même les faces? On lui fournit la liste des sommets puis la liste des faces mais avec les numéros de sommets au lieu des coordonnées.

Bonjour Patrick,
C'est effectivement une bonne méthode et c'est ainsi qu'est construit un .obj.
L'extension pour Asymptote est pour l'instant minimaliste; Je verrai ce que je peux faire lorsque j'aurais du temps...
(MB attend encore la fin de trembling et il reste un truc pénible à régler dans geometry_dev)

J'en profite pour te remercier pour les fichiers permettant de fabriquer les animations swf avec les boutons.
Ph. Ivaldi
Méga-utilisateur
 
Messages: 267
Inscription: Vendredi 12 Janvier 2007, 23:27
Statut actuel: Actif et salarié

Re: [Asymptote] Des nouvelles

Messagepar P.Fradin » Samedi 09 Février 2008, 17:46

Ph. Ivaldi a écrit:Les arrêtes en pointillés ne sont pas encore implémentées; si quelqu'un a un algorithme à proposer, je suis preneur.


Pour les polyèdres convexes (uniquement) j'ai procédé ainsi dans TeXgraph:

- structure de données: une arête est la donnée de deux points et un statut (visible/cachée),
- par défaut toutes les arêtes sont considérées comme cachées,
- on parcourt le polyèdre face par face:
* pour chaque face: on détermine si elle est visible ou non, c'est à dire si son vecteur normal est dirigé vers l'observateur (c'est juste un produit scalaire à faire), si elle est visible alors les arêtes de cette face sont visibles, on modifie donc leur statut.

Voilà c'est tout!

On peut alors envisager plusieurs modes de dessin:

* fil de fer: on dessine juste les arêtes en tenant compte de leur statut
* faces visibles uniquement avec éventuellement un remplissage
* faces visibles + arêtes cachées

pyramide.png
pyramide.png (11.66 Kio) Vu 1173 fois


J'en profite pour te remercier pour les fichiers permettant de fabriquer les animations swf avec les boutons.


C'est surtout Jean-Michel (Sarlat) qu'il faut remercier!
Dernière édition par P.Fradin le Dimanche 10 Février 2008, 10:07, édité 1 fois.
P.Fradin
 

Re: [Asymptote] Des nouvelles

Messagepar Ph. Ivaldi » Samedi 09 Février 2008, 18:41

Merci, je prends note.
Ph. Ivaldi
Méga-utilisateur
 
Messages: 267
Inscription: Vendredi 12 Janvier 2007, 23:27
Statut actuel: Actif et salarié

Re: [Asymptote] Des nouvelles

Messagepar kib2 » Dimanche 10 Février 2008, 03:10

Salut à tous,

joli travail Philippe, j'aime beaucoup ton bateau playmobil :)

J'avais procédé ainsi avec geoPyX et les objets 3d (qui étaient aussi des .obj, j'ai d'ailleurs toujours un exemplaire de la navette spatiale, parmi pas mal d'autres objets, si ça t'interesse...) :

- trier les faces visibles/cachées (à l'aide du produit scalaire, cf algo de Patrick).
- commencer par tracer toutes les faces cachées en pointillés ;
- ensuite les visibles ;

Le rendu final est acceptable, mais personnelement je me suis arrêté là car je n'en étais pas totalement satisfait (une arête peut-être à la fois cachée/visible car appartenant à deux faces distinctes, la superposition se voit parfois un peu mais il faut vraiment être très attentif pour le remarquer).

Maintenant, (c'est totalement hors-sujet) je m'intéresse de plus en plus aux langages fonctionnels et je viens de trouver ceci implémenté en Common-Lisp: http://www.fractalconcept.com/ex.pdf
C'est le troisième projet (après Lout et Ant) que je vois qui tente une alternative à LaTeX/MetaPost en même temps...mais la barrière semble être le language.
Pourtant j'aime beaucoup la syntaxe minimaliste de Lisp et j'imagine déjà ce qu'on pourrait faire avec de telles choses.
kib2
Hecto-utilisateur
 
Messages: 80
Inscription: Samedi 25 Novembre 2006, 22:44

Re: [Asymptote] Des nouvelles

Messagepar P.Fradin » Dimanche 10 Février 2008, 09:45

Bonjour,

kib2 a écrit:Le rendu final est acceptable, mais personnelement je me suis arrêté là car je n'en étais pas totalement satisfait (une arête peut-être à la fois cachée/visible car appartenant à deux faces distinctes, la superposition se voit parfois un peu mais il faut vraiment être très attentif pour le remarquer).


Dans l'algorithme que j'ai proposé il n'y a pas ce problème puisque chaque arête est dessinée une seule fois. Initialement toutes les arêtes ont le statut "cachée", puis on parcourt toutes les faces une à une, lorsqu'une face est visible le statut de ses arêtes passe à "visible". Ensuite on peut dessiner chaque arête en fonction de son statut, et une seule fois chacune!.

Maintenant, (c'est totalement hors-sujet) je m'intéresse de plus en plus aux langages fonctionnels ....


Maintenant tu sais pourquoi dans TeXgraph tout est fonction et liste (en fait tout est "arbre" et exécuter signifie évaluer l'arbre)... :wink:
P.Fradin
 

Re: [Asymptote] Des nouvelles

Messagepar Ph. Ivaldi » Dimanche 10 Février 2008, 11:05

kib2 a écrit:joli travail Philippe, j'aime beaucoup ton bateau playmobil :)

Salut Kib2 et merci pour le compliment mais c'est Jens qui a fait le plus gros boulot.
kib2 a écrit:j'ai d'ailleurs toujours un exemplaire de la navette spatiale, parmi pas mal d'autres objets, si ça t'interesse...) :

Un joli .obj m'intéresse effectivement.
kib2 a écrit:une arête peut-être à la fois cachée/visible car appartenant à deux faces distinctes, la superposition se voit parfois un peu

C'est pourquoi je pense qu'il faut parcourir chaque arrête avec un petit pas et lancer un rayon vers la caméra pour savoir s'il intercepte une face.
Une autre idée (bête) et de tracer toutes les arrêtes en trait plein puis de hachurer chaque face (ordonnée) avec la couleur de fond (oui je sais le résultat risque d'être moche).
Ceci dit je ne me suis pas penché sérieusement sur la question...
kib2 a écrit:je viens de trouver ceci implémenté en Common-Lisp: http://www.fractalconcept.com/ex.pdf

C'est intéressant mais avant d'avoir toutes les fonctionnalités de TeX, il risque de passer beaucoup d'eau sous les ponts.
Tu nous tiens au courant des évolutions ?
Ph. Ivaldi
Méga-utilisateur
 
Messages: 267
Inscription: Vendredi 12 Janvier 2007, 23:27
Statut actuel: Actif et salarié

Re: [Asymptote] Des nouvelles

Messagepar Ph. Ivaldi » Dimanche 10 Février 2008, 11:12

P.Fradin a écrit:Dans l'algorithme que j'ai proposé il n'y a pas ce problème puisque chaque arête est dessinée une seule fois. Initialement toutes les arêtes ont le statut "cachée", puis on parcourt toutes les faces une à une, lorsqu'une face est visible le statut de ses arêtes passe à "visible". Ensuite on peut dessiner chaque arête en fonction de son statut, et une seule fois chacune!.

On est d'accord mais cela ne marche que pour les polyèdres convexes.
Comment faire dans le cas général (on peut supposé --sans perte de généralité-- que chaque face est convexe).
Ph. Ivaldi
Méga-utilisateur
 
Messages: 267
Inscription: Vendredi 12 Janvier 2007, 23:27
Statut actuel: Actif et salarié

Re: [Asymptote] Des nouvelles

Messagepar P.Fradin » Dimanche 10 Février 2008, 11:55

Ph. Ivaldi a écrit:On est d'accord mais cela ne marche que pour les polyèdres convexes.
Comment faire dans le cas général (on peut supposé --sans perte de généralité-- que chaque face est convexe).


Bonjour Philippe,

Pour les non convexes, c'est évidemment plus délicat! Je ne vais pas polluer ce fil consacré à Asymptote avec mon programme, disons que l'utilisateur a deux méthodes pour représenter son polyèdre quand il est non convexe:

1) un tri de facettes de la plus éloignée à la plus proche puis affichage, c'est suffisant quand le solide n'est pas trop tordu.
ou
2) un tri de facettes avec découpage pour les classer, c'est l'algorithme de BSP-trees, ça fonctionne tout le temps mais cela peut faire une image très lourde en vectoriel!

Ce deux méthodes ne donnent pas les arêtes cachées en pointillés, l'astuce est de redessiner en pointillés toutes les arêtes par dessus, dans la même couleur et a même épaisseur bien sûr.

NonConvexe.PNG
Exemple avec l'algorithme des BSP-trees


Personnellement, je n'aime pas trop voir les arêtes cachées en pointillés dans ce cas, je trouve qu'utiliser la transparence donne mieux, d'ailleurs Jean-Michel a mis quelques exemples sur son site Syracuse.
P.Fradin
 

Re: [Asymptote] Des nouvelles

Messagepar Ph. Ivaldi » Dimanche 10 Février 2008, 19:15

P.Fradin a écrit:Je ne vais pas polluer ce fil consacré à Asymptote avec mon programme

Tu ne pollues rien du tout et je ne peux que te remercier pour tes excellents conseils.

P.Fradin a écrit:l'astuce est de redessiner en pointillés toutes les arêtes par dessus, dans la même couleur et a même épaisseur bien sûr.

Excellente astuce !
Finalement je crois qu'il ne manque pas grand chose pour que les modules de Jens affiche les arrêtes cachées en pointillés.
Dès que j'ai un moment, j'y travaille. Encore merci !
Ph. Ivaldi
Méga-utilisateur
 
Messages: 267
Inscription: Vendredi 12 Janvier 2007, 23:27
Statut actuel: Actif et salarié

Re: [Asymptote] Des nouvelles

Messagepar OG » Lundi 11 Février 2008, 09:18

Bonjour

Tout cela est très joli.
Pour information, l'algorithme de Jens pour les polyèdres est similaire à celui utilisé par Patrick (ou encore m3D par Anthony Phan et bien d'autres encore) et travaille sur les faces.

1) trie selon la distance de la caméra au centre de gravité de la face
2) selon le produit scalaire qui teste face visible/invible on affiche la face et ses arêtes.

Donc facilement adaptable pour faire un mode fil de fer/pointillé. (mélanger transparence et pointillé n'est pas forcément un bon mélange)

Cordialement
O.G.
OG
Modérateur
 
Messages: 2279
Inscription: Lundi 12 Mars 2007, 11:20
Localisation: Rouen
Statut actuel: Actif et salarié | Maître de conférence


Retourner vers Asymptote

 


  • Articles en relation
    Réponses
    Vus
    Dernier message

Qui est en ligne

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