26 oct. 2007

Asymptote using three.asy – fig0030

Figure 0003
(Compiled with Asymptote version 2.14svn-r5318)
    
import three;

size(10cm);
currentlight=(0,0,1);

surface sf=surface(patch(P=new triple[][] {
      {(0,0,0),(1,0,0),(1,0,0),(2,0,0)},
      {(0,1,0),(1,0,1),(1,0,1),(2,1,0)},
      {(0,1,0),(1,0,-1),(1,0,-1),(2,1,0)},
      {(0,2,0),(1,2,0),(1,2,0),(2,2,0)}
    }));

draw(sf,surfacepen=yellow);
draw(sf.s[0].vequals(0.5),squarecap+2bp+blue,currentlight);
draw(sf.s[0].uequals(0.5),squarecap+2bp+red,currentlight);

  • Facebook
  • Google Bookmarks
  • LinkedIn
  • Twitter
  • Yahoo! Bookmarks

Mots-clefs : , , , , ,

4 Réponses à “Asymptote using three.asy – fig0030”

Flux RSS de ces commentaires rss

  1. gelobo a dit:

    Bonjour, je suis tout nouveau à asymptote et ai emprunté des exemples de vos codes pour tester mon installation (asymptote 1.92 sous Mac OS 10.6).

    Étrangement aucun des résultats que j'obtiens n'est identique à ceux que vous montrez. Par exemple pour fig0030 je n'obtiens qu'une surface d'un jaune canari vif et parfaitement uniforme, sans aucun effet de relief.
    (Pour fig0040 le bleu transparent de votre fichier devient un gris opaque.)

    Le fichier epsf produit par asy pour fig0030 est le suivant :

    %!PS-Adobe-3.0 EPSF-3.0
    %%BoundingBox: 163 339 448 452
    %%HiResBoundingBox: 163.767717 339.671767 447.232283 451.328233
    %%Creator: Asymptote 1.92
    %%CreationDate: 2010.09.10 17:56:43
    %%Pages: 1
    %%Page: 1 1
    /Setlinewidth {0 exch dtransform dup abs 1 lt {pop 0}{round} ifelse
    idtransform setlinewidth pop} bind def
    gsave
     310.38732 408.97578 translate
    gsave
    newpath -146.619604 -69.3040139 moveto
     136.844963 -69.3040139 lineto
     136.844963 42.3524529 lineto
     -146.619604 42.3524529 lineto
     -146.619604 -69.3040139 lineto
    closepath
    clip
    clip
    <>
    shfill
    grestore
    newpath -73.3098018 20.4199327 moveto
     -72.4884558 23.528814 -71.8703236 26.6986216 -70.8457639 29.7465766 curveto
     -70.2073893 31.6456724 -69.485181 33.5663006 -68.3384438 35.2091885 curveto
     -67.696646 36.1286683 -66.7397258 37.0176784 -65.6352792 37.2114444 curveto
     -64.579175 37.3967291 -63.4646846 36.8188877 -62.5750735 36.220324 curveto
     -61.192857 35.290317 -60.0905098 33.9889765 -58.9887124 32.7393854 curveto
     -57.4590849 31.0045755 -56.1051152 29.1221028 -54.697944 27.2865662 curveto
     -52.9460007 25.0013033 -51.2787613 22.651588 -49.5119765 20.3777799 curveto
     -47.4528589 17.7277467 -45.4099597 15.0611558 -43.2216036 12.5168014 curveto
     -40.7668294 9.66268838 -38.2712133 6.834377 -35.5903891 4.19145076 curveto
     -32.6381697 1.28096597 -29.5952293 -1.55430526 -26.342107 -4.124075 curveto
     -22.7668272 -6.94832971 -19.0599839 -9.63331056 -15.1430602 -11.9607016 curveto
     -10.784347 -14.550599 -6.2696147 -16.9196353 -1.57695517 -18.8392437 curveto
     3.77078958 -21.0268253 9.27292965 -22.8997717 14.8915812 -24.246858 curveto
     21.4906713 -25.829007 28.2117798 -27.0044954 34.9715404 -27.6018403 curveto
     43.1615027 -28.3255688 51.4162336 -28.5673868 59.6299112 -28.2002835 curveto
     69.8700126 -27.742611 80.0282693 -26.154911 90.2274484 -25.1322248 curveto
    0 0 1 setrgbcolor
    2 Setlinewidth
    0 setlinecap
    1 setlinejoin
    10 setmiterlimit
    stroke
    newpath 53.3162195 26.4015291 moveto
     47.1457065 25.7950939 40.9742151 25.1985324 34.8046805 24.5822235 curveto
     29.316531 24.033982 23.828184 23.4871011 18.3432173 22.9078827 curveto
     13.5140765 22.3979203 8.6856015 21.879945 3.862618 21.3147084 curveto
     -0.341279065 20.8220266 -4.54338558 20.310467 -8.7366449 19.7342186 curveto
     -12.3576202 19.236615 -15.9751421 18.7074298 -19.5782036 18.0934109 curveto
     -22.6656383 17.567263 -25.746874 16.9945093 -28.8040862 16.3144079 curveto
     -31.4134204 15.7339406 -34.0116148 15.0888716 -36.5698082 14.3134922 curveto
     -38.7619953 13.6490481 -40.9335857 12.8983978 -43.0404765 11.9994087 curveto
     -44.881094 11.2140357 -46.6827692 10.3179823 -48.3880596 9.2707631 curveto
     -49.9437176 8.3154332 -51.4283583 7.22830816 -52.7899524 6.01225358 curveto
     -54.1202592 4.82414198 -55.3379496 3.5003412 -56.4289848 2.08932465 curveto
     -57.5815335 0.598753708 -58.5903513 -1.00665289 -59.4951067 -2.65940451 curveto
     -60.5148845 -4.52227193 -61.3866299 -6.46671507 -62.1891433 -8.43297905 curveto
     -63.1331553 -10.7459334 -63.9479826 -13.1110665 -64.7293198 -15.483919 curveto
     -65.6727468 -18.349024 -66.5172408 -21.2460719 -67.3617936 -24.141864 curveto
     -68.4000369 -27.7017793 -69.3722044 -31.2806336 -70.3774097 -34.8500184 curveto
    1 0 0 setrgbcolor
    stroke
    grestore
    showpage
    %%EOF
    
    • Admin
      Ph. Ivaldi a dit:

      Bonjour, il est tout à fait possible que les résultats que vous obtenez soient différents pour la simple raison que vous n'utilisez pas la même version d'Asymptote que celle utilisée pour générer mes exemples. Il semblerait, par exemple, que la gestion la lumière ait changé entre la version 1.87 et 1.92. Ainsi, pour la figure fig0030, il suffit de supprimer la ligne
      currentlight=(0,0,1);
      pour avoir un résultat plus conforme à celui présenté actuellement.
      Pour les autres figures, il faut voir au cas par cas…

      • gelobo a dit:

        Merci pour votre réponse.
        En fait si le seul changement de version est susceptible d'invalider certaines commandes, je crains qu'il soit très difficile de pallier ces modifications inattendues.
        La modification que vous me suggérez ne donne pas non plus le bon résultat : elle a seulement remplacé le jaune vif par un jaune sombre tout aussi uniforme que dans ma première tentative.
        (Je me demande en fait si une obscure routine d'asymptote concernant l'ombrage ne serait pas empêchée de se dérouler correctement… Pour des raisons de version différente, d'installation, etc.)
        Quoi qu'il en soit je vais poursuivre mes expérimentations, et tenter d'installer une version différente notamment.

        • Admin
          Ph. Ivaldi a dit:

          > En fait si le seul changement de version est susceptible d'invalider
          > certaines commandes, je crains qu'il soit très difficile de pallier ces modifications inattendues.
          Comme dans tout logiciel, il y a des évolutions qui supportent la compatibilité ascendante, d'autre non.
          Ces trois dernières années, une seule évolution a véritablement engendré une incompatibilité majeure (sur le 3D seulement avec l'apparition de l'export PRC pour Acrobat), et encore, il n'y avait rien d'insurmontable.

          > La modification que vous me suggérez ne donne pas non plus le bon résultat
          Je viens de tester à nouveau chez moi, et j'obtiens bien le résultat escompté.
          Avec currentlight=(0,0,1); j'obtiens effectivement une figure plus jaune que celle du site mais elle contient malgré tous des zones ombrées.
          > Quoi qu'il en soit je vais poursuivre mes expérimentations, et tenter d'installer une version différente
          Je pense effectivement qu'il faut commencer par utiliser la dernière version stable.
          Personnellement j'utilise la version de développement (2.05svn-r5158) mais il vaut mieux utiliser la version 2.04.