Corner pointing arrow grid
Clash Royale CLAN TAG#URR8PPP
up vote
1
down vote
favorite
Hey folks, just whipped this up in Illustrator manually, but looking to do it on a much larger scale. Anyone have an idea as to how to automate this process or have a script that does somethin like it? Thanks!
Also, here's how I did it â is there an easier way in general?
adobe-illustrator vector illustrator-scripting
add a comment |Â
up vote
1
down vote
favorite
Hey folks, just whipped this up in Illustrator manually, but looking to do it on a much larger scale. Anyone have an idea as to how to automate this process or have a script that does somethin like it? Thanks!
Also, here's how I did it â is there an easier way in general?
adobe-illustrator vector illustrator-scripting
add a comment |Â
up vote
1
down vote
favorite
up vote
1
down vote
favorite
Hey folks, just whipped this up in Illustrator manually, but looking to do it on a much larger scale. Anyone have an idea as to how to automate this process or have a script that does somethin like it? Thanks!
Also, here's how I did it â is there an easier way in general?
adobe-illustrator vector illustrator-scripting
Hey folks, just whipped this up in Illustrator manually, but looking to do it on a much larger scale. Anyone have an idea as to how to automate this process or have a script that does somethin like it? Thanks!
Also, here's how I did it â is there an easier way in general?
adobe-illustrator vector illustrator-scripting
adobe-illustrator vector illustrator-scripting
asked 1 hour ago
Josh K-H
253
253
add a comment |Â
add a comment |Â
3 Answers
3
active
oldest
votes
up vote
1
down vote
accepted
I would use Effect > Distort & Transform > Transform
Draw a vertical row of arrows. The bottom dot is used as a rotation point.
Group all that.
Choose `Effect > Distort & Transform > Transform**
Set the Origin point to the Bottom Left:
Then add the amount of negative degrees you want in the Angle field and the number of copies you want in the Copies field.
Click Okay
. Choose Object > Expand Appearance
, then `Ungroup* (twice), and delete what you don't want.
add a comment |Â
up vote
2
down vote
I would use the script Rotate Toward Point by Hiroyuki Sato. The script rotates the objects in the selection toward the center of the foreground object.
Make sure to place the "selected" object (the one you want rotated towards) on the top.
Right click â Arrange â Bring to front (Shift+Ctrl+])
You just select everything and run the script.
âââââââââBefore âââââââââââââ After
(This video also shows the script in action - first he distributes them along the path and then rotates them towards the center person)
Code Below
// rotateTowardPoint.jsx
// rotates the objects in the selection toward the center of the foreround object.
// USAGE: select the objects and run this script.
// test env: Adobe Illustrator CC (Win/Mac)
// Copyright(c) 2014 Hiroyuki Sato
// http://shspage.blogspot.jp/
// This script is distributed under the MIT License.
// See the LICENSE file for details.
// Fri, 14 Feb 2014 21:08:40 +0900
function main()
// settings:
// extract_groups: rotates each item in the groups, otherwise rotates each groups (checkbox value)
// show_dialog: shows a dialog before execution, otherwise shows no dialog
var conf =
extract_groups : false,
show_dialog : true
if(documents.length < 1) return;
var sels = activeDocument.selection;
if( sels.length < 2 ) return;
if( conf.show_dialog)
var win = new Window("dialog", "rotateTowardPoint");
win.alignChildren = "fill";
win.chk = win.add("checkbox", undefined, "extract groups");
win.btnGroup = win.add("group", undefined );
win.btnGroup.alignment = "center";
win.btnGroup.okBtn = win.btnGroup.add("button", undefined, "OK");
win.btnGroup.cancelBtn = win.btnGroup.add("button", undefined, "Cancel");
var getValues = function()
conf.extract_groups = win.chk.value;
win.btnGroup.okBtn.onClick = function()
getValues();
rotateToPoint( sels, conf );
win.close();
win.btnGroup.cancelBtn.onClick = function()
win.close();
win.show();
else
rotateToPoint( sels, conf );
function rotateToPoint( sels, conf )
var target = sels[0];
if( conf.extract_groups )
sels = extractGroup( sels.slice(1) );
else
sels = sels.slice(1);
// gets the center of the foreground object.
// the other objects are rotated toward this point.
var point = getCenter( target );
for(var i = 0; i < sels.length; i++)
var t = getAngle( point, getCenter(sels[i]));
sels[i].rotate( t - 90, true, true, true, true, Transformation.CENTER );
function getCenter(p)
return [p.left + p.width / 2,
p.top - p.height / 2];
function getAngle(p1, p2)
return Math.atan2(p2[1] - p1[1],
p2[0] - p1[0]) * 180 / Math.PI;
function extractGroup( s, r )
if( r == undefined ) r = ;
for( var i = 0; i < s.length; i++)
if( s[i].typename == "GroupItem" )
extractGroup( s[i].pageItems, r );
else
r.push( s[i] );
return r;
main();
add a comment |Â
up vote
0
down vote
It can be made duplicating arrow blends and replacing spines
- Create the spines blending two angles, expand them and ungroup
- Create a blend between a horizontal and vertical arrow
- Select the arrow blends and one of the angles and replace spine
Result
add a comment |Â
3 Answers
3
active
oldest
votes
3 Answers
3
active
oldest
votes
active
oldest
votes
active
oldest
votes
up vote
1
down vote
accepted
I would use Effect > Distort & Transform > Transform
Draw a vertical row of arrows. The bottom dot is used as a rotation point.
Group all that.
Choose `Effect > Distort & Transform > Transform**
Set the Origin point to the Bottom Left:
Then add the amount of negative degrees you want in the Angle field and the number of copies you want in the Copies field.
Click Okay
. Choose Object > Expand Appearance
, then `Ungroup* (twice), and delete what you don't want.
add a comment |Â
up vote
1
down vote
accepted
I would use Effect > Distort & Transform > Transform
Draw a vertical row of arrows. The bottom dot is used as a rotation point.
Group all that.
Choose `Effect > Distort & Transform > Transform**
Set the Origin point to the Bottom Left:
Then add the amount of negative degrees you want in the Angle field and the number of copies you want in the Copies field.
Click Okay
. Choose Object > Expand Appearance
, then `Ungroup* (twice), and delete what you don't want.
add a comment |Â
up vote
1
down vote
accepted
up vote
1
down vote
accepted
I would use Effect > Distort & Transform > Transform
Draw a vertical row of arrows. The bottom dot is used as a rotation point.
Group all that.
Choose `Effect > Distort & Transform > Transform**
Set the Origin point to the Bottom Left:
Then add the amount of negative degrees you want in the Angle field and the number of copies you want in the Copies field.
Click Okay
. Choose Object > Expand Appearance
, then `Ungroup* (twice), and delete what you don't want.
I would use Effect > Distort & Transform > Transform
Draw a vertical row of arrows. The bottom dot is used as a rotation point.
Group all that.
Choose `Effect > Distort & Transform > Transform**
Set the Origin point to the Bottom Left:
Then add the amount of negative degrees you want in the Angle field and the number of copies you want in the Copies field.
Click Okay
. Choose Object > Expand Appearance
, then `Ungroup* (twice), and delete what you don't want.
answered 1 hour ago
Scott
141k14194400
141k14194400
add a comment |Â
add a comment |Â
up vote
2
down vote
I would use the script Rotate Toward Point by Hiroyuki Sato. The script rotates the objects in the selection toward the center of the foreground object.
Make sure to place the "selected" object (the one you want rotated towards) on the top.
Right click â Arrange â Bring to front (Shift+Ctrl+])
You just select everything and run the script.
âââââââââBefore âââââââââââââ After
(This video also shows the script in action - first he distributes them along the path and then rotates them towards the center person)
Code Below
// rotateTowardPoint.jsx
// rotates the objects in the selection toward the center of the foreround object.
// USAGE: select the objects and run this script.
// test env: Adobe Illustrator CC (Win/Mac)
// Copyright(c) 2014 Hiroyuki Sato
// http://shspage.blogspot.jp/
// This script is distributed under the MIT License.
// See the LICENSE file for details.
// Fri, 14 Feb 2014 21:08:40 +0900
function main()
// settings:
// extract_groups: rotates each item in the groups, otherwise rotates each groups (checkbox value)
// show_dialog: shows a dialog before execution, otherwise shows no dialog
var conf =
extract_groups : false,
show_dialog : true
if(documents.length < 1) return;
var sels = activeDocument.selection;
if( sels.length < 2 ) return;
if( conf.show_dialog)
var win = new Window("dialog", "rotateTowardPoint");
win.alignChildren = "fill";
win.chk = win.add("checkbox", undefined, "extract groups");
win.btnGroup = win.add("group", undefined );
win.btnGroup.alignment = "center";
win.btnGroup.okBtn = win.btnGroup.add("button", undefined, "OK");
win.btnGroup.cancelBtn = win.btnGroup.add("button", undefined, "Cancel");
var getValues = function()
conf.extract_groups = win.chk.value;
win.btnGroup.okBtn.onClick = function()
getValues();
rotateToPoint( sels, conf );
win.close();
win.btnGroup.cancelBtn.onClick = function()
win.close();
win.show();
else
rotateToPoint( sels, conf );
function rotateToPoint( sels, conf )
var target = sels[0];
if( conf.extract_groups )
sels = extractGroup( sels.slice(1) );
else
sels = sels.slice(1);
// gets the center of the foreground object.
// the other objects are rotated toward this point.
var point = getCenter( target );
for(var i = 0; i < sels.length; i++)
var t = getAngle( point, getCenter(sels[i]));
sels[i].rotate( t - 90, true, true, true, true, Transformation.CENTER );
function getCenter(p)
return [p.left + p.width / 2,
p.top - p.height / 2];
function getAngle(p1, p2)
return Math.atan2(p2[1] - p1[1],
p2[0] - p1[0]) * 180 / Math.PI;
function extractGroup( s, r )
if( r == undefined ) r = ;
for( var i = 0; i < s.length; i++)
if( s[i].typename == "GroupItem" )
extractGroup( s[i].pageItems, r );
else
r.push( s[i] );
return r;
main();
add a comment |Â
up vote
2
down vote
I would use the script Rotate Toward Point by Hiroyuki Sato. The script rotates the objects in the selection toward the center of the foreground object.
Make sure to place the "selected" object (the one you want rotated towards) on the top.
Right click â Arrange â Bring to front (Shift+Ctrl+])
You just select everything and run the script.
âââââââââBefore âââââââââââââ After
(This video also shows the script in action - first he distributes them along the path and then rotates them towards the center person)
Code Below
// rotateTowardPoint.jsx
// rotates the objects in the selection toward the center of the foreround object.
// USAGE: select the objects and run this script.
// test env: Adobe Illustrator CC (Win/Mac)
// Copyright(c) 2014 Hiroyuki Sato
// http://shspage.blogspot.jp/
// This script is distributed under the MIT License.
// See the LICENSE file for details.
// Fri, 14 Feb 2014 21:08:40 +0900
function main()
// settings:
// extract_groups: rotates each item in the groups, otherwise rotates each groups (checkbox value)
// show_dialog: shows a dialog before execution, otherwise shows no dialog
var conf =
extract_groups : false,
show_dialog : true
if(documents.length < 1) return;
var sels = activeDocument.selection;
if( sels.length < 2 ) return;
if( conf.show_dialog)
var win = new Window("dialog", "rotateTowardPoint");
win.alignChildren = "fill";
win.chk = win.add("checkbox", undefined, "extract groups");
win.btnGroup = win.add("group", undefined );
win.btnGroup.alignment = "center";
win.btnGroup.okBtn = win.btnGroup.add("button", undefined, "OK");
win.btnGroup.cancelBtn = win.btnGroup.add("button", undefined, "Cancel");
var getValues = function()
conf.extract_groups = win.chk.value;
win.btnGroup.okBtn.onClick = function()
getValues();
rotateToPoint( sels, conf );
win.close();
win.btnGroup.cancelBtn.onClick = function()
win.close();
win.show();
else
rotateToPoint( sels, conf );
function rotateToPoint( sels, conf )
var target = sels[0];
if( conf.extract_groups )
sels = extractGroup( sels.slice(1) );
else
sels = sels.slice(1);
// gets the center of the foreground object.
// the other objects are rotated toward this point.
var point = getCenter( target );
for(var i = 0; i < sels.length; i++)
var t = getAngle( point, getCenter(sels[i]));
sels[i].rotate( t - 90, true, true, true, true, Transformation.CENTER );
function getCenter(p)
return [p.left + p.width / 2,
p.top - p.height / 2];
function getAngle(p1, p2)
return Math.atan2(p2[1] - p1[1],
p2[0] - p1[0]) * 180 / Math.PI;
function extractGroup( s, r )
if( r == undefined ) r = ;
for( var i = 0; i < s.length; i++)
if( s[i].typename == "GroupItem" )
extractGroup( s[i].pageItems, r );
else
r.push( s[i] );
return r;
main();
add a comment |Â
up vote
2
down vote
up vote
2
down vote
I would use the script Rotate Toward Point by Hiroyuki Sato. The script rotates the objects in the selection toward the center of the foreground object.
Make sure to place the "selected" object (the one you want rotated towards) on the top.
Right click â Arrange â Bring to front (Shift+Ctrl+])
You just select everything and run the script.
âââââââââBefore âââââââââââââ After
(This video also shows the script in action - first he distributes them along the path and then rotates them towards the center person)
Code Below
// rotateTowardPoint.jsx
// rotates the objects in the selection toward the center of the foreround object.
// USAGE: select the objects and run this script.
// test env: Adobe Illustrator CC (Win/Mac)
// Copyright(c) 2014 Hiroyuki Sato
// http://shspage.blogspot.jp/
// This script is distributed under the MIT License.
// See the LICENSE file for details.
// Fri, 14 Feb 2014 21:08:40 +0900
function main()
// settings:
// extract_groups: rotates each item in the groups, otherwise rotates each groups (checkbox value)
// show_dialog: shows a dialog before execution, otherwise shows no dialog
var conf =
extract_groups : false,
show_dialog : true
if(documents.length < 1) return;
var sels = activeDocument.selection;
if( sels.length < 2 ) return;
if( conf.show_dialog)
var win = new Window("dialog", "rotateTowardPoint");
win.alignChildren = "fill";
win.chk = win.add("checkbox", undefined, "extract groups");
win.btnGroup = win.add("group", undefined );
win.btnGroup.alignment = "center";
win.btnGroup.okBtn = win.btnGroup.add("button", undefined, "OK");
win.btnGroup.cancelBtn = win.btnGroup.add("button", undefined, "Cancel");
var getValues = function()
conf.extract_groups = win.chk.value;
win.btnGroup.okBtn.onClick = function()
getValues();
rotateToPoint( sels, conf );
win.close();
win.btnGroup.cancelBtn.onClick = function()
win.close();
win.show();
else
rotateToPoint( sels, conf );
function rotateToPoint( sels, conf )
var target = sels[0];
if( conf.extract_groups )
sels = extractGroup( sels.slice(1) );
else
sels = sels.slice(1);
// gets the center of the foreground object.
// the other objects are rotated toward this point.
var point = getCenter( target );
for(var i = 0; i < sels.length; i++)
var t = getAngle( point, getCenter(sels[i]));
sels[i].rotate( t - 90, true, true, true, true, Transformation.CENTER );
function getCenter(p)
return [p.left + p.width / 2,
p.top - p.height / 2];
function getAngle(p1, p2)
return Math.atan2(p2[1] - p1[1],
p2[0] - p1[0]) * 180 / Math.PI;
function extractGroup( s, r )
if( r == undefined ) r = ;
for( var i = 0; i < s.length; i++)
if( s[i].typename == "GroupItem" )
extractGroup( s[i].pageItems, r );
else
r.push( s[i] );
return r;
main();
I would use the script Rotate Toward Point by Hiroyuki Sato. The script rotates the objects in the selection toward the center of the foreground object.
Make sure to place the "selected" object (the one you want rotated towards) on the top.
Right click â Arrange â Bring to front (Shift+Ctrl+])
You just select everything and run the script.
âââââââââBefore âââââââââââââ After
(This video also shows the script in action - first he distributes them along the path and then rotates them towards the center person)
Code Below
// rotateTowardPoint.jsx
// rotates the objects in the selection toward the center of the foreround object.
// USAGE: select the objects and run this script.
// test env: Adobe Illustrator CC (Win/Mac)
// Copyright(c) 2014 Hiroyuki Sato
// http://shspage.blogspot.jp/
// This script is distributed under the MIT License.
// See the LICENSE file for details.
// Fri, 14 Feb 2014 21:08:40 +0900
function main()
// settings:
// extract_groups: rotates each item in the groups, otherwise rotates each groups (checkbox value)
// show_dialog: shows a dialog before execution, otherwise shows no dialog
var conf =
extract_groups : false,
show_dialog : true
if(documents.length < 1) return;
var sels = activeDocument.selection;
if( sels.length < 2 ) return;
if( conf.show_dialog)
var win = new Window("dialog", "rotateTowardPoint");
win.alignChildren = "fill";
win.chk = win.add("checkbox", undefined, "extract groups");
win.btnGroup = win.add("group", undefined );
win.btnGroup.alignment = "center";
win.btnGroup.okBtn = win.btnGroup.add("button", undefined, "OK");
win.btnGroup.cancelBtn = win.btnGroup.add("button", undefined, "Cancel");
var getValues = function()
conf.extract_groups = win.chk.value;
win.btnGroup.okBtn.onClick = function()
getValues();
rotateToPoint( sels, conf );
win.close();
win.btnGroup.cancelBtn.onClick = function()
win.close();
win.show();
else
rotateToPoint( sels, conf );
function rotateToPoint( sels, conf )
var target = sels[0];
if( conf.extract_groups )
sels = extractGroup( sels.slice(1) );
else
sels = sels.slice(1);
// gets the center of the foreground object.
// the other objects are rotated toward this point.
var point = getCenter( target );
for(var i = 0; i < sels.length; i++)
var t = getAngle( point, getCenter(sels[i]));
sels[i].rotate( t - 90, true, true, true, true, Transformation.CENTER );
function getCenter(p)
return [p.left + p.width / 2,
p.top - p.height / 2];
function getAngle(p1, p2)
return Math.atan2(p2[1] - p1[1],
p2[0] - p1[0]) * 180 / Math.PI;
function extractGroup( s, r )
if( r == undefined ) r = ;
for( var i = 0; i < s.length; i++)
if( s[i].typename == "GroupItem" )
extractGroup( s[i].pageItems, r );
else
r.push( s[i] );
return r;
main();
edited 1 hour ago
answered 1 hour ago
WELZ
5,37841553
5,37841553
add a comment |Â
add a comment |Â
up vote
0
down vote
It can be made duplicating arrow blends and replacing spines
- Create the spines blending two angles, expand them and ungroup
- Create a blend between a horizontal and vertical arrow
- Select the arrow blends and one of the angles and replace spine
Result
add a comment |Â
up vote
0
down vote
It can be made duplicating arrow blends and replacing spines
- Create the spines blending two angles, expand them and ungroup
- Create a blend between a horizontal and vertical arrow
- Select the arrow blends and one of the angles and replace spine
Result
add a comment |Â
up vote
0
down vote
up vote
0
down vote
It can be made duplicating arrow blends and replacing spines
- Create the spines blending two angles, expand them and ungroup
- Create a blend between a horizontal and vertical arrow
- Select the arrow blends and one of the angles and replace spine
Result
It can be made duplicating arrow blends and replacing spines
- Create the spines blending two angles, expand them and ungroup
- Create a blend between a horizontal and vertical arrow
- Select the arrow blends and one of the angles and replace spine
Result
edited 1 hour ago
answered 1 hour ago
Danielillo
15.3k12257
15.3k12257
add a comment |Â
add a comment |Â
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fgraphicdesign.stackexchange.com%2fquestions%2f116215%2fcorner-pointing-arrow-grid%23new-answer', 'question_page');
);
Post as a guest
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password