elise_0720
New Here
elise_0720
New Here
Activity
‎Feb 25, 2025
03:36 AM
Bonjour à tous, Cette histoire de spirale m'a fait repenser à un script qui date du temps de win98, Illustrator CS. polaire.js Qui trace des courbes en coordonnées polaires dans le calque actif. Centrées par rapport à l'origine des règles globales (à vous de placer l'origine au centre du plan de travail). l'équation de la spirale d'Archimède (r = a*t) Dans le script, j'ai validé la ligne 16 qui contient tous les paramètres pour cette courbe, vous pourrez tester les deux autres exemples. Une fois la courbe tracée, vous pouvez appliquer la commande Objet > Tracé > simplifier 90% Amusez vous René /*----------------------------------------
polaire.js
Auteur Landry René
Tue, 24 February 1998 10:44:49 GMT
Trace des courbes en coordonnees polaires dans le calque actif.
A l'origine des règles globales.
*/
// initialisation-------------------------------------------------
var equa = "Math.cos(t*3)/b"; // Equation variable t
var b = 0.8;
var min = 0;
var max = Math.PI;
var pas = Math.PI/90;
var ech = 80; // facteur d'échelle
//var equa = "t*t"; var min = 0; var max = 4*Math.PI ; var ech = .8; var pas =Math.PI /90;
var A = 1;var equa = "A*t"; var min = 0; var max = 50*Math.PI ; var ech = 3; var pas =Math.PI /90;
var fermeContour = false; //contour ferme oui non
var epaisseurContour = 2;
var couleurContour = macmykColor(0,75,100,0);; // Citrouille
var fondCouleur = true; //couleur du fond oui non
var couleurFond = macmykColor(25,10,0,0);
var couleurRep = macmykColor(88,77,0,0);
var axeOption = true; //axes x oui non
//-----------------------------------------------------------------
function axe (axe,p1,p2)
{ //crée un axe
axe.strokeWidth = 0.75 //épaisseur du contour;
axe.strokeColor = couleurRep;
axe.filled = false;
axe.setEntirePath([p1,p2]);
return axe;
}
//----------------
function cal(t,equa) {
return eval(equa);
}
//----------------
function fleche (fl,l,t,orientation,couleur)
{ //crée 1 flèche > ou ^
var ret, dl, dh;
ret = 3.5; dl = 12; dh = 15;
with(fl) {
fillColor = couleur;
stroked = false;
closed = true;
if (orientation == 0) {
setEntirePath([[0,0],[-ret,dl/2],[dh,0],[-ret,-dl/2]]);
l -= ret; t += dl/2;
}
else {
setEntirePath([[0,0],[-ret,dl/2],[dh,0],[-ret,-dl/2]]);
l -= dl/2; t += dh;
}
rotate(orientation);
position = [l,t];
}
return fl;
}
//----------------
function macmykColor(c,m,y,k)
{ //cree une nouvelle couleur CMJN
var cmykColor = new CMYKColor();
cmykColor.cyan = c;
cmykColor.magenta = m;
cmykColor.yellow = y;
cmykColor.black = k;
return cmykColor;
}
//----------------
function pointSuivant(x,y,ligne)
{//Ajoute un point à une ligne
var newPoint = ligne.pathPoints.add();
newPoint.anchor = [x, y];
newPoint.leftDirection = newPoint.anchor;
newPoint.rightDirection = newPoint.anchor;
newPoint.pointType = PointType.CORNER;
}
//----------------
function main() {
if (!documents.length) {
alert("Pour l'exécution de ce sript un document doit être ouvert !");
return
}
var doc = activeDocument;
var layer = doc.activeLayer;
if (layer.locked) {
alert("Calque verrouillé","Alerte De elleere");
return;
}
if (layer.visible == false) layer.visible = true;
var ligne = layer.pathItems.add();
with(ligne) {
name = "r = f(t)"+equa;
stroked = true; // contour
strokeWidth = epaisseurContour; //épaisseur du contour;
strokeColor = couleurContour;
if (fondCouleur) {
fillColor = couleurFond;
}
else {
filled = false;
}
//ferme le contour option
if (fermeContour) closed = true;
}
//----------------------------------------
var nbSeg = Math.ceil((max-min)/pas);
var t = min, x, y;
for (var point = 1; point <= nbSeg+1; point ++) {
x = cal(t,equa)*Math.cos(t);
y = cal(t,equa)*Math.sin(t);
pointSuivant(x*ech, y*ech,ligne);
//if (point == nbSeg) t = max else t += pas;
t = point == nbSeg ? t = max : t += pas;
}
//trace les axes + fleches option
if (axeOption) {
repereGroup = layer.groupItems.add();
repereGroup.name = "repere";
var axeX = repereGroup.pathItems.add();
var axeY = repereGroup.pathItems.add();
var flh = repereGroup.pathItems.add();
axeX = axe(axeX,[-200,0],[200,0]);
flh = fleche(flh,200,0,0,couleurRep);
}
}
//-----------------------------------------
main();
... View more