• Global community
    • Language:
      • Deutsch
      • English
      • Español
      • Français
      • Português
  • 日本語コミュニティ
    Dedicated community for Japanese speakers
  • 한국 커뮤니티
    Dedicated community for Korean speakers
Exit
1

paragraph text inside a circle

New Here ,
Feb 22, 2025 Feb 22, 2025

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!

TOPICS
Draw and design , How-to , Tools

Views

150

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Adobe
Community Expert ,
Feb 22, 2025 Feb 22, 2025

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.

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Advocate ,
Feb 23, 2025 Feb 23, 2025

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

Screen LP spiral.pngexpand image

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Expert ,
Feb 23, 2025 Feb 23, 2025

Copy link to clipboard

Copied

That looks good too! But you can also modify the script for the rounding times and radius increment.

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
New Here ,
Feb 24, 2025 Feb 24, 2025

Copy link to clipboard

Copied

thank you! do you have instructions for how you did those other things? change direction etc?

 

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Advocate ,
Feb 24, 2025 Feb 24, 2025

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.

renl80416020_0-1740430243101.pngexpand image

René

renl80416020_1-1740431543326.pngexpand image

Ici maxi rounding times 40

renl80416020_0-1740431018309.pngexpand image

 

PS Merci @Ton Frederiks pour le lien.

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Expert ,
Feb 24, 2025 Feb 24, 2025

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.

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Advocate ,
Feb 25, 2025 Feb 25, 2025

Copy link to clipboard

Copied

LATEST

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();

 

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines