3
SVG en-ligne comme fond d'un élément avec CSS3 et Javascript
Web, Javascript
16 août 2016

Depuis CSS3 on peut définir une image SVG comme fond d'un élément sans URL, en passant directement l'encodage de l'image. On peut ainsi éviter de charger un fichier externe.

div {
  width: 50vw;
  height: 50vh;
  background-image: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNCIgaGVpZ2h0PSI2IiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGQ9Ik0wIDMgTDMgMCBMNCAxIEwyIDMgTDQgNSBMMyA2IFoiIGZpbGw9InJnYmEoMjAwLDIwMCwyMDAsMC43NSkiLz48L3N2Zz4=");
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
}

L'image SVG est encodée en base64 pour l'insérer en ligne directement dans le CSS. Des outils tel que celui-ci permettent cet encodage.

On peut aussi utiliser Javascript pour cela à l'intérieur d'un script. A ce moment là on peut même éviter d'avoir un fichier CSS.

Ici, par exemple, la même image en SVG HTML5 que j'encode et assigne avec Javascript.

var svgMarkup = "<svg width="4" height="6" xmlns="http://www.w3.org/2000/svg"><path d="M0 3 L3 0 L4 1 L2 3 L4 5 L3 6 Z" fill="rgba(200,200,200,0.75)"/></svg>";

var svg64 = window.btoa(svgMarkup);

document.querySelector("div").style.backgroundImage = "url('data:image/svg+xml;base64,"+svg64+"')";
2
Boucle avec arrêt sur pression du bouton Échap avec pyRhino
Python, Rhino3D
19 mai 2016

La bonne astuce pour éviter de bloquer Rhino avec une fonction infinie ou boguée.

import scriptcontext as sc

i = 0
while not sc.escape_test(False):
    print i
    i+=1
1
Assigner à script pyRhino à un bouton dans l'interface de Rhino
Rhino3D, Python
4 oct 2014

Clic droit sur la barre horizontale sous les onglets : « nouveau bouton ».

Insérer le code Python dans la case commande pour le clic droit ou gauche. Le code doit être inséré dans une macro comme suit :

! _NoEcho -_RunPythonScript (

#insert Python code here

)

On peut ajouter un icône pour personnaliser le botuon, par défaut on a droit à un émoticône sourillant.