[HS] Un tableau déformé en fonction d'une donnée

Tout ce qui concerne le langage Asymptote. Ce langage est utilisable sur le forum via les balises asy.
[participation réservée aux utilisateurs inscrits]
Règles du forum
Merci de soigner la rédaction de vos messages et de consulter ce sujet avant de poster. Pensez également à utiliser la fonction recherche du forum.
cjorssen

[HS] Un tableau déformé en fonction d'une donnée

Message non lu par cjorssen »

Bonsoir à tous,

Je suis conscient qu'il s'agit plus que probablement d'un hors-sujet... Je cherche à réaliser avec asymptote (pas totalement hs donc!) quelque chose qui ressemblerait à ça
Image

Comme vous pouvez le voir, les cases de la classification périodique des éléments sont déformées en fonction d'une propriété de la case en question (l'aire de la case est proportionnelle à la propriété, mais la case "colle" aussi à ses plus proches voisins, c'est ça qui me semble difficile). Je cherche tout embryon de début de réflexion sur ce point mais je n'ai aucune idée d'où chercher. Si quelqu'un a une idée...

En vous remerciant d'avance.

--
Christophe
GMaths
Utilisateur chevronné
Utilisateur chevronné
Messages : 2042
Inscription : lundi 01 octobre 2007, 10:20

Re: [HS] Un tableau déformé en fonction d'une donnée

Message non lu par GMaths »

cjorssen a écrit :les cases de la classification périodique des éléments sont déformées en fonction d'une propriété de la case en question (l'aire de la case est proportionnelle à la propriété, ...
"déformées en fonction d'une propriété" ?"
Je ne comprends pas. Quelle propriété ? Proportionnalité... tu es sûr ?
GMaths
Utilisateur chevronné
Utilisateur chevronné
Messages : 2042
Inscription : lundi 01 octobre 2007, 10:20

Re: [HS] Un tableau déformé en fonction d'une donnée

Message non lu par GMaths »

GMaths a écrit :"déformées en fonction d'une propriété" ?"
Je ne comprends pas. Quelle propriété ? Proportionnalité... tu es sûr ?
Je crois avoir compris : tu as des valeurs, à titre d'exemple, pour une propriété donnée ?

Mais si j'ai compris pour les valeurs... je ne m'explique pas certains choix de forme : sur quel(s) critères, pour une aire donnée, on a un choix de forme plutôt qu'une autre ?
cjorssen

Re: [HS] Un tableau déformé en fonction d'une donnée

Message non lu par cjorssen »

Bonsoir et merci de ta réponse.
GMaths a écrit :Je crois avoir compris : tu as des valeurs, à titre d'exemple, pour une propriété donnée ?
Tu peux trouver deux propriétés ici (pas pour tout le tableau, mais cela devrait suffire) : ste417-41-44.wikispaces.com/file/view/p ... diques.xls
GMaths a écrit :Mais si j'ai compris pour les valeurs... je ne m'explique pas certains choix de forme : sur quel(s) critères, pour une aire donnée, on a un choix de forme plutôt qu'une autre ?
Moi non plus. Je me demande si chaque sommet du "carré" n'a pas un poids pondéré par ses plus proches voisins ??? Je ne sais pas bien comment fonctionne les courbes de Bézier, mais ne peut-on justement pas donner un poids à la courbure ???

--
Christophe
GMaths
Utilisateur chevronné
Utilisateur chevronné
Messages : 2042
Inscription : lundi 01 octobre 2007, 10:20

Re: [HS] Un tableau déformé en fonction d'une donnée

Message non lu par GMaths »

cjorssen a écrit :
GMaths a écrit :Mais si j'ai compris pour les valeurs... je ne m'explique pas certains choix de forme : sur quel(s) critères, pour une aire donnée, on a un choix de forme plutôt qu'une autre ?
Moi non plus. Je me demande si ...
N'as tu pas un nom de personne à contacter... pour tenter d'avoir des infos ?
cjorssen

Re: [HS] Un tableau déformé en fonction d'une donnée

Message non lu par cjorssen »

GMaths a écrit :N'as tu pas un nom de personne à contacter... pour tenter d'avoir des infos ?
Je viens de contacter l'auteur. On verra s'il me répond. Je vous tiens au courant si c'est exploitable avec asymptote.

Merci

--
Christophe
GMaths
Utilisateur chevronné
Utilisateur chevronné
Messages : 2042
Inscription : lundi 01 octobre 2007, 10:20

Re: [HS] Un tableau déformé en fonction d'une donnée

Message non lu par GMaths »

Une remarque : dans la mesure où on se demande, nous, quels ont été les critères du choix des formes... ne faut-il pas se demander si c'est un type pertinent de représentation, c'est à dire une représentation susceptible d'être comprise spontanément, sans décodage nécessaire par un initié.
cjorssen

Re: [HS] Un tableau déformé en fonction d'une donnée

Message non lu par cjorssen »

cjorssen a écrit :Je viens de contacter l'auteur. On verra s'il me répond. Je vous tiens au courant si c'est exploitable avec asymptote.
C'était une bonne idée Gaëtan. L'auteur m'a répondu : il s'agit de density equalised cartograms. On peut trouver pas mal de chose sur l'algorithme qu'il me faut maintenant lire :-)

http://www2.imperial.ac.uk/~mgastner/ca ... ogram.html
http://www-personal.umich.edu/~mejn/cart/
http://www.worldmapper.org/index.html

À première vue, cela doit être adaptable à asymptote (peut-être pas le calcul..., mais l'utiilisation du résultat du calcul).
--
Christophe
Dernière modification par cjorssen le mardi 12 avril 2011, 10:38, modifié 1 fois.
Romain Janvier
Utilisateur éprouvé
Utilisateur éprouvé
Messages : 146
Inscription : lundi 23 août 2010, 14:57

Re: [HS] Un tableau déformé en fonction d'une donnée

Message non lu par Romain Janvier »

On peut "facilement" deformer du texte ou une image avec asymptote ? Je ne suis pas allé voir les algos, mais on ne pourrait pas imaginer déformer un plan en 3D et plaquer l'image du tableau dessus ?
maurice
Utilisateur éprouvé
Utilisateur éprouvé
Messages : 399
Inscription : jeudi 25 mars 2010, 13:49

Re: [HS] Un tableau déformé en fonction d'une donnée

Message non lu par maurice »

Bonjour

Des choses comme ça ?
a98ddadd61cfd8af8ab78ef070b558b5edab4a01.svg
Maurice

PS : 1er jet, il y a plein d’améliorations à faire ....
Asymptote :
----> Démarrage rapide : http://cgmaths.fr/Atelier/Asymptote/Asymptote.html
----> Documentation 3D : http://www.mathco.tuxfamily.org et si ça ne marche pas, essayez la version pdf
cjorssen

Re: [HS] Un tableau déformé en fonction d'une donnée

Message non lu par cjorssen »

maurice a écrit :Des choses comme ça ?

PS : 1er jet, il y a plein d’améliorations à faire ....
Pas mal, pas mal pour un premier jet !

Je vais essayer d'adapter le code de l'algorithme cité plus haut. Mais c'est une très bonne base si on veut faire simple. Un grand merci !

--
Christophe
maurice
Utilisateur éprouvé
Utilisateur éprouvé
Messages : 399
Inscription : jeudi 25 mars 2010, 13:49

Re: [HS] Un tableau déformé en fonction d'une donnée

Message non lu par maurice »

Bonsoir, voici le deuxième jet, même si cela ne correspond pas tout à fait à la demande :

Code : Tout sélectionner

unitsize(1cm);


path cote_hor(pair pA, pair pB, real poids, real att) {
	real poids=poids/att;
	path g=pA..controls (pA.x+poids,pA.y+poids) and (pB.x-poids,pB.y+poids)..pB;
	return g;
}


path cote_ver(pair pA, pair pB, real poids, real att) {
	real poids=poids/att;
	path g=pA..controls (pA.x+poids,pA.y+poids) and (pB.x+poids,pB.y-poids)..pB;
	return g;
}

srand((int)time("%S"));	


string[][] block={{"H", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "He"},
		  {"Li", "Be", "", "", "", "", "", "", "", "", "", "", "B", "C", "N", "O", "F", "Ne"},
		  {"Na", "Mg", "", "", "", "", "", "", "", "", "", "", "Al", "Si", "P", "C", "Cl", "Ar"},
		  {"K", "Ca", "Sc" ,"Ti", "V", "Cr", "Mn", "Fe", "Co", "Ni", "Cu", "Zn", "Ga", "Ge", "As", "Se", "Br", "Cr"},
		  {"Rb", "Sr", "Y", "Zr", "Nb", "Mo", "Tc", "Ru", "Rh", "Pd", "Ag", "Cd", "In", "Sn", "Sb", "Te", "X", "Xe"},
		  {"Cs", "Ba", "", "Hf", "Ta", "W", "Re", "Os", "Ir", "Pt", "Au", "Hg", "Tl", "Pb", "Bi", "Po", "At", "Rn"},
		  {"Fr", "Fa", "", "Rf", "Db", "Sg", "Bh", "Hs", "Mt", "Ds", "Rg", "Cn", "", "", "", "", "", ""},
		  {"", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", ""},
		  {"", "", "", "La", "Ce", "Pr", "Nd", "Pm", "Sm", "Eu", "Gd", "Tb", "Dy", "Ho", "Er", "Tm", "Yb", "Lu"},
                  {"", "", "", "Ac", "Th", "Pa", "U", "Np", "Pu", "Am", "Cm", "Bk", "Cf", "Es", "Fm", "Md", "No", "Lr"}};

pair[][] sommets=new pair[11][19];
for(int i=0; i<11; ++i) {
	srand((int)time("%S"));
	for (int j=0; j<19; ++j) {
	if (i==0 || i==10 || j==0 || j==18) {sommets[i][j]=(j,-i);}
		else {
			real s=unitrand()-0.5;
			real t=unitrand()-0.5;
			sommets[i][j]=(j+s,-i+t);
		}
	}
}

real[][] poids_hor=new real[11][18];
for (int i=0; i<11; ++i) {
	for (int j=0; j<18; ++j) poids_hor[i][j]=unitrand()-0.5;
}

real[][] poids_ver=new real[10][19];
for (int i=0; i<10; ++i) {
	for (int j=0; j<19; ++j) poids_ver[i][j]=unitrand()-0.5;
}

path case(string s, 
          pair p1, 
          pair p2, 
          pair p3, 
          pair p4, 
          real poids_hor1, 
          real poids_hor2, 
          real poids_ver1, 
          real poids_ver2, 
          real att=1.5) {
          		path g;
			if (s != "") {
			path g1=cote_hor(p1, p2, poids_hor1, att);
			path g2=cote_ver(p2, p3, poids_ver1, att);
			path g3=cote_hor(p3, p4, poids_hor2, att);
			path g4=cote_ver(p4, p1, poids_ver2, att);
			g = g1--g2--g3--g4--cycle;
			}
			else {g=scale(0.1)*((0,0)--(1,0)--(1,1)--cycle);}
			return g;
}

for (int i=0; i<10; ++i) {
	for (int j=0; j<18; ++j) {
		pen p;
		if (j<2 && i<8) {p=rgb(0.1,0.7,0);}
		if (j>1 && j<12 && i<8) {p=heavyred;}
		if (j>11 && i<8) {p=rgb(1,0.8,0);}
		if (i>=8) {p=rgb(0.1,0.7,0);}
		 filldraw(case(block[i][j],
		 	  sommets[i][j], 
		          sommets[i][j+1], 
		          sommets[i+1][j+1], 
		          sommets[i+1][j], 
		          poids_hor[i][j], 
		          poids_hor[i+1][j], 
		          poids_ver[i][j+1],
		          poids_ver[i][j], 
		          att=1.5), p, 1bp+white);
		 label(block[i][j], (sommets[i][j]+sommets[i+1][j+1])/2, white);
	}
}


Mauirce
periode7.png
Bon c'est pas terrible !!!
Je reste intéressé par la construction de carte par anamorphose !
Asymptote :
----> Démarrage rapide : http://cgmaths.fr/Atelier/Asymptote/Asymptote.html
----> Documentation 3D : http://www.mathco.tuxfamily.org et si ça ne marche pas, essayez la version pdf
cjorssen

Re: [HS] Un tableau déformé en fonction d'une donnée

Message non lu par cjorssen »

maurice a écrit :Bon c'est pas terrible !!!
Je reste intéressé par la construction de carte par anamorphose !
Pas mal quand même ! Je te trouve très dur !

Je pars en vacances sans internet mais avec la doc d'asymptote. Je vous tiens au courant en rentrant 8)

--
Christophe