Page 2 sur 4

Re: [Résolu][Asymptote] Plusieurs solides simples et pointillés

MessagePosté: Vendredi 29 Janvier 2010, 12:41
par projetmbc
OG a écrit:@Gaëtan : tu sais ce qu'il te reste à faire ?

Je vais essayer de voir avec l'auteur de geospace. Je lui enverrais un mail en fin de journée.

PS : quelqu'un a-t-il fait un comparatif entre Asymptote et TeXgraph ?

Re: [Résolu][Asymptote] Plusieurs solides simples et pointillés

MessagePosté: Vendredi 29 Janvier 2010, 14:23
par OG
Bonjour

Je pense que c'est possible de faire un équivalent en Asymptote, les deux utilisent la méthode du "binary space partition". Mais il faut mettre les mains dans le cambouis (bsp.asy), pour avoir

1) gestion correcte des pointillés
2) affichage éventuel des intersections.
3) gérer les solides simples telles que cylindres, sphère qui ne sont pas traiter par bsp : c'est possible car l'intersection est connue et bien déterminée (ce qui n'est pas le cas des carreux de Bézier)

Bref il y a du boulot surtout pour le point 3).

Question comparaison, sans parler des deux langages très différents et pour ce que je connais de la 3D, Asymptote est très orienté surfaces par carreux de Bézier.

Nous avons la chance d'avoir d'excellentes solutions graphiques.
Je ne peux guère en dire plus.

O.G.

Re: [Résolu][Asymptote] Plusieurs solides simples et pointillés

MessagePosté: Vendredi 29 Janvier 2010, 21:36
par GMaths
projetmbc a écrit:Il se trouve que TeXgraph permet de faire tout ce que l'on peut t'attendre en 3D au Lycée, sans souci : voir ce post .

J'y lis :
projetmbc a écrit:Pas de souci/ La plupart des élèves ont du mal à visualiser ce qu'il se passe avec un cube... On ne va vraiment pas loin, un cube, un plan, une section

Je me permets de rappeler une petite production perso sur le sujet : http://gmaths.free.fr/asymptote/slide/sections_cube.pdf
Le code serait à revoir car il date d'avant le bouleversement de la version 1.44 d'Asymptote.

Re: [Résolu][Asymptote] Plusieurs solides simples et pointillés

MessagePosté: Samedi 30 Janvier 2010, 11:04
par GMaths
OG a écrit:Nous avons la chance d'avoir d'excellentes solutions graphiques.

Totalement d'accord.

OG a écrit:Je ne peux guère en dire plus.

On peut peut-être dire qu'elles ont toutes des avantages et des inconvénients, et que, si on a le temps nécessaire, il est conseillé de tester et de ne pas se limiter à une seule.
Personnellement, j'utilise à ce jour :

  • pstricks (estimation : 10% des productions - en fait des modifications de ce que j'avais produit à mes débuts en 2004 (jusqu'en 2007) - En 2003, je pensais encore que LaTeX était la matière que vous connaissez. :lol: )
  • asymptote (50%)
  • tikz (30%)
  • texgraph (10%)

J'interviens toujours à propos d'asymptote et non à propos des trois autres (car je pense que d'autres en font déjà très bien la promotion)... mais je pense du bien des 4 solutions... et je ne suis pas du tout comme certains qui s'offusquent que l'on puisse proposer une solution avec X quand la question posée l'est sur Y.

Edition : grrr MB : tu avais mis trop d'espace ! :lol:

Re: [Résolu][Asymptote] Plusieurs solides simples et pointillés

MessagePosté: Samedi 30 Janvier 2010, 11:30
par MB
Personnellement :

  • asymptote (98%)
  • tikz (2%)

J'espère juste qu'Asymptote sera un jour aussi bien intégré à LaTeX que l'est Tikz. Car par exemple, pour faire un tableau de proportionnalité dans un document tex et ensuite ajouter une flèche indiquant le coefficient de proportionnalité, il est quand même pratique d'utiliser tikz.

Re: [Résolu][Asymptote] Plusieurs solides simples et pointillés

MessagePosté: Samedi 30 Janvier 2010, 11:36
par OG
On voit bien le côté matheux : la somme fait bien 100% !
Quel talent !

O.G.

Re: [Résolu][Asymptote] Plusieurs solides simples et pointillés

MessagePosté: Samedi 30 Janvier 2010, 12:04
par un bon petit
GMaths a écrit:et je ne suis pas du tout comme certains qui s'offusquent que l'on puisse proposer une solution avec X quand la question posée l'est sur Y.

Hein ? On m'appelle ?

Re: [Résolu][Asymptote] Plusieurs solides simples et pointillés

MessagePosté: Samedi 30 Janvier 2010, 12:44
par MB
OG a écrit:On voit bien le côté matheux : la somme fait bien 100% !
Quel talent !


Je vois que tu as vérifié mes savants calculs ! :mrgreen: (rien n'est laissé au hasard sur MathemaTeX)

Re: [Résolu][Asymptote] Plusieurs solides simples et pointillés

MessagePosté: Samedi 30 Janvier 2010, 13:27
par projetmbc
MB a écrit:
OG a écrit:On voit bien le côté matheux : la somme fait bien 100% !
Quel talent !


Je vois que tu as vérifié mes savants calculs ! :mrgreen: (rien n'est laissé au hasard sur MathemaTeX)

La vraie question est de savoir si OG a utilisé Asymptote ou TeXgraph pour réaliser ses calculs... :mrgreen:

Re: [Résolu][Asymptote] Plusieurs solides simples et pointillés

MessagePosté: Samedi 30 Janvier 2010, 16:11
par OG
projetmbc a écrit:
MB a écrit:
OG a écrit:On voit bien le côté matheux : la somme fait bien 100% !
Quel talent !


Je vois que tu as vérifié mes savants calculs ! :mrgreen: (rien n'est laissé au hasard sur MathemaTeX)

La vraie question est de savoir si OG a utilisé Asymptote ou TeXgraph pour réaliser ses calculs... :mrgreen:


Avec TikZ mais j'ai géré à la main les erreurs d'arrondis. Pendant le temps de calcul j'ai pu écrire un article et une doc pour asymptote.

O.G. 200% sérieux (comme d'habitude)

Re: [Résolu][Asymptote] Plusieurs solides simples et pointillés

MessagePosté: Dimanche 31 Janvier 2010, 12:50
par Ph. Ivaldi
Salut les Matheux,

C'est la franche déconnade ici ;-)

Je vais essayer de jeter un œil sur le code mais le temps m'est compté…

Re: [Résolu][Asymptote] Plusieurs solides simples et pointillés

MessagePosté: Dimanche 31 Janvier 2010, 14:44
par projetmbc
Ph. Ivaldi a écrit:Je vais essayer de jeter un œil sur le code mais le temps m'est compté…

Merci d'être passé. :thumbsup:

De toute façon, il n'y a pas urgence. L'idée serait juste de comprendre les quelques lignes que tu as tapées pour une éventuelle amélioration de l'extension.

Re: [Résolu][Asymptote] Plusieurs solides simples et pointillés

MessagePosté: Lundi 01 Février 2010, 00:14
par Ph. Ivaldi
J'ai identifié le problème et cela ne vient (évidement :mrgreen: ) pas de ma routine.
La différence de tracé provient du fait que les faces des solides ont (évidement) des arrêtes en commun.
Or les point de départ et d'arrivée lors d'un tracé en pointillés dépendent (évidemment) du chemin.
Du coup, l'arrête commune à deux faces va être tracée deux fois avec des pointillés décalés.

Voici une illustration de ce que j'avance:

Code: Tout sélectionner
size(10cm);
path p1=E--W, p2=NW--p1--cycle;
draw(p2,1bp+linetype("6 18"));
draw(p1,1bp+linetype("6 18"));
dot(0.1S,invisible);


donne

essai.png
essai.png (2.05 Kio) Vu 1187 fois


Il y a (évidement) un moyen de contourner le problème dans geoespace.asy ; je ferais une proposition prochainement.

Re: [Résolu][Asymptote] Plusieurs solides simples et pointillés

MessagePosté: Lundi 01 Février 2010, 00:55
par OG
Ph. Ivaldi a écrit:J'ai identifié le problème et cela ne vient (évidement :mrgreen: ) pas de ma routine.

Il y a (évidement) un moyen de contourner le problème dans geoespace.asy ; je ferais une proposition prochainement.


éclater toutes les arêtes par exemple. Code pas vraiment optimisé...

Code: Tout sélectionner
path3[] tabarete(shape[] shp)
{
  path3 [] lpatha;
 for(int i=0; i < shp.length; ++i)
    for(int j=0; j < shp[i].length; ++j) {
      path3 g=shp[i][j];
      for (int k=0;k<size(g)-1 ;++k ) {
        lpatha.push(point(g,k)--point(g,k+1));
      }
    }
 return lpatha;
}

void addshapes(face[] F, shape[] shp, pen drawpen=currentpen, pen fillpen=white)
{
  path3[] tgg=tabarete(shp);
  for(int i=0; i < shp.length; ++i)
    for(int j=0; j < shp[i].length; ++j) {
      path3 g=shp[i][j];
      picture pic=F.push(g);
            if(fillpen != nullpen) filldraw(pic,project(g),fillpen, drawpen);
      else draw(pic,project(tgg),drawpen);//draw(pic,project(g),drawpen);
      // filldraw(pic,g,currentlight.intensity(F[F.length-1].point)*fillpen, drawpen);
    }
}


Il reste encore l'intersection des solides à facette.

O.G.

Re: [Résolu][Asymptote] Plusieurs solides simples et pointillés

MessagePosté: Lundi 01 Février 2010, 10:14
par OG
J'ai un peu trop forcé

Code: Tout sélectionner
path3[] tabarete(path3 g)
{
  path3 [] lpatha;
  for (int k=0;k<size(g)-1 ;++k ) {
    lpatha.push(point(g,k)--point(g,k+1));
  }
  return lpatha;
}


void addshapes(face[] F, shape[] shp, pen drawpen=currentpen, pen fillpen=white)
{
  for(int i=0; i < shp.length; ++i)
    for(int j=0; j < shp[i].length; ++j) {
      path3 g=shp[i][j];
      picture pic=F.push(g);
      path3[] tgg=tabarete(g);
      if(fillpen != nullpen) filldraw(pic,project(g),fillpen, drawpen);
      else draw(pic,project(tgg),drawpen);//draw(pic,project(g),drawpen);
      // filldraw(pic,g,currentlight.intensity(F[F.length-1].point)*fillpen, drawpen);
    }
 }//


O.G.

Re: [Résolu][Asymptote] Plusieurs solides simples et pointillés

MessagePosté: Lundi 01 Février 2010, 10:18
par Ph. Ivaldi
Salut Olivier,

Le problème c'est qu'il ne faut pas sectionner les parties courbes, sinon ça va faire moche.
J'y travaille…

Re: [Résolu][Asymptote] Plusieurs solides simples et pointillés

MessagePosté: Lundi 01 Février 2010, 10:40
par Ph. Ivaldi
On peut aussi optimiser le code car il est inutile d'ajouter des faces alors que l'on a juste besoin des arrêtes cachées.

Re: [Résolu][Asymptote] Plusieurs solides simples et pointillés

MessagePosté: Lundi 01 Février 2010, 10:45
par projetmbc
Bonjour,
est-ce que quelqu'un pourrait m'expliquer la routine pas à pas si possible ?

PS : je ne parle pas du train-train quotidien...

Re: [Résolu][Asymptote] Plusieurs solides simples et pointillés

MessagePosté: Lundi 01 Février 2010, 10:46
par OG
Ph. Ivaldi a écrit:Salut Olivier,

Le problème c'est qu'il ne faut pas sectionner les parties courbes, sinon ça va faire moche.
J'y travaille…


Salut Philippe

Je n'avais pas vu que des courbes pouvaient apparaître, je voyais uniquement le côté "à facettes".
Pour les courbes il suffit de récupérer le morceau qui va bien avec les points de contrôle... subpath pourra aider.

réponse au message suivant: pour l'optimisation oui je suis bien d'accord mais il faut réfléchir, ça prend du temps et hier soir (tard) après avoir tapé mon cours, je me suis mis à quelque chose qui m'amusait. Tu peux aussi ne tracer les segments qu'une seule fois, mais là il faut changer un peu plus le addshapes...

O.G.

Re: [Résolu][Asymptote] Plusieurs solides simples et pointillés

MessagePosté: Lundi 01 Février 2010, 10:53
par OG
projetmbc a écrit:Bonjour,
est-ce que quelqu'un pourrait m'expliquer la routine pas à pas si possible ?

PS : je ne parle pas du train-train quotidien...


Quelle routine ?

L'exemple de Philippe met en lumière le problème :
quand tu traces les côtés de deux facettes comme les deux chemins n'ont pas les mêmes points de départ et arrivée, sur une arête commune les pointillés ne coïncident pas et le train-train déraille. Dans addshapes, option les pointillés, tu ajoutes par draw(pic,project(g),drawpen), le tracé en pointillés de la facette shp[i][j] remplissage vide.

Ce que j'ai fait comme un bourrin vers minuit, c'est d'éclater le chemin arête d'une facette en un tableau de segments. Eux seront tracés un à un, d'où ça marche à peu près.

Clair ?

O.G.