Page 1 sur 1

label en couleur en 2D mais pas en 3D ?

Posté : jeu. 22 févr. 2024, 09:11
par cdeuss
En 2D tout marche bien :

Code : Tout sélectionner

import fontsize;

unitsize(50);
defaultpen(fontsize(20pt)+3);

usepackage("xcolor");

dot((0, 1), 2bp + red);
label("$(a + b)^3 = \mathcolor[RGB]{237, 128, 4}{a^3} + \mathcolor[RGB]{0, 112, 192}{3a^2b} + \mathcolor[RGB]{84, 178, 68}{3ab^2} + \mathcolor[RGB]{249, 61, 95}{b^3}$", (0, 0));
Je ne comprends pas pourquoi le même code en 3D ne marche pas :

Code : Tout sélectionner

import three;
import fontsize;

unitsize(50);
defaultpen(fontsize(20pt)+3);

usepackage("xcolor");

dot((0, 1, 0), 2bp + red);
label("$(a + b)^3 = \mathcolor[RGB]{237, 128, 4}{a^3} + \mathcolor[RGB]{0, 112, 192}{3a^2b} + \mathcolor[RGB]{84, 178, 68}{3ab^2} + \mathcolor[RGB]{249, 61, 95}{b^3}$", (0, 0, 0));
Des idées ?

Re: label en couleur en 2D mais pas en 3D ?

Posté : mar. 27 févr. 2024, 18:10
par GM
Bonjour,

Je sais qu'en 2D, demander l'affichage d'un texte au point (0,0) est possible car il y a une orientation par défaut du repère.

Mais, en 3D, il y a une infinité de plans qui passent par le point (0,0,0) donc il ne faudrait pas être surpris qu'il faille préciser dans quel plan, on veut le texte, et dire sous quel angle on veut voir les choses.

Je rappelle l'existence de cette rubrique : https://asy.marris.fr/asymptote/Textes_3D/index.html... même si le premier exemple (bizarre) donne à penser qu'il y aurait besoin d'une mise à jour.

Re: label en couleur en 2D mais pas en 3D ?

Posté : mar. 27 févr. 2024, 18:37
par GM
N'y a t-il pas que mathcolor qui ne fonctionne pas ?

Même en ayant recours à draw et extrude, je ne pense pas qu'utiliser la couleur tel que c'est fait avec mathcolor dans la chaine fonctionnera en 3D
car en 3D chaque lettre est converti en une surface ou un ensemble de surfaces.

Re: label en couleur en 2D mais pas en 3D ?

Posté : mer. 28 févr. 2024, 09:11
par cdeuss
Bonjour,
D'après John Bowman, TeX est un programme 2D. Asymptote transforme la fonte en 3D et donc il faut utiliser un pen Asymptote. Par contre je ne vois pas trop comment faire pour avoir plusieurs couleurs avec un pen ?

De plus lorsqu'on importe le module three, il y a une projection par défaut et le label est transformé pour qu'il fasse face à la caméra.

Merci pour vos réponses et bonne journée à tous.

Cyrille

Re: label en couleur en 2D mais pas en 3D ?

Posté : mer. 28 févr. 2024, 17:21
par GM
Pour la transformation de la fonte en assemblage de surfaces, c'est ce que je disais.

Je ne vois pas de solutions simples à part du bricolage de ce genre

Code : Tout sélectionner

import three;
import fontsize;

currentprojection=perspective(0,-100,150);

unitsize(50);
defaultpen(fontsize(20pt)+3);

usepackage("xcolor");

draw(extrude("$(a + c)^3 = $",Z),black);
draw(shift(55,0,0)*extrude("$a^3$",Z),red);
draw(shift(75,0,0)*extrude("$+$",Z));
draw(shift(105,0,0)*extrude("$3a^2b$",Z),blue);
... mais cela va être pénible pour trouver :
  1. la valeur à donner aux x dans les shift pour l'espacement entre les "mots" ;
  2. la valeur à modifier parfois pour le y s'il y un problème d'alignement vertical.
J'ai hésité à présenter cela tellement c'est du bricolage mais comme je n'ai rien d'autre à proposer sur le moment...

Re: label en couleur en 2D mais pas en 3D ?

Posté : ven. 1 mars 2024, 15:53
par cdeuss
J'ai essayé plusieurs choses :
-- Décomposer le label en plusieurs parties de couleurs différentes et les placer au bon endroit. Mais déjà même en 2D c'est déjà le bazar alors en 3D n'en parlons pas. J'ai bricolé trois minutes et ai courageusement abandonné.
-- Faire le label en 2D et insérer l'eps 2D obtenu dans l'eps 3D. Pas réussi à insérer l'eps.