paragraph text inside a circle
Copy link to clipboard
Copied
hi! can someone help me on how to achieve this kind of paragraph text inside of a shape (circle)? type on a path seems to wrap the outside and warping seems to use the whole paragraph on the one line. thanks!
Explore related tutorials & articles
Copy link to clipboard
Copied
You need to create an Archimedian spiral, this script can do that:
https://github.com/Shanfan/Illustrator-Scripts-Archive/blob/master/jsx/Archimedean%20Spiral.jsx
An click in the center with the Type on a path tool.
Copy link to clipboard
Copied
I agree with Ton, type on a path and Archimedian Spiral is the way to go.
For Archimedean Spirals, my go to is using Inkscape. You have more control over how many turns to make.
For this particular graphic, the script Archimedian Spiral did not have enough turns.
Here I used 20 turns. Scissor cut the inside and delete.
The only tricky part about this graphic was getting text to read left to right, starting from the outside going inward.
To do this, I resized the spiral to fit the LP record. I also changed the direction of the path.
Lastly, I changed the path to Text on a path.
K
Copy link to clipboard
Copied
That looks good too! But you can also modify the script for the rounding times and radius increment.
Copy link to clipboard
Copied
thank you! do you have instructions for how you did those other things? change direction etc?
Copy link to clipboard
Copied
Bonjour @elise_0720 ,
Pour que le texte soit au dessus du tracé et dans le bon sens, c'est simple, il suffit de changer le sens du tracé avant de placer le texte.
Pour inverser le sens du tracé, il faut utiliser l'outil plume (P) et pointer le point de départ de la spirale.
Remarque: le script Archimedean Spiral.jsx est limité à 1000points.
René
Ici maxi rounding times 40
PS Merci @Ton Frederiks pour le lien.
Copy link to clipboard
Copied
René is right, change the direction of the path before adding any text to the path. You can do it also by selecting the path and clicking Object > Path > Reverse Path Direction.
Copy link to clipboard
Copied
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();

