gpt4 book ai didi

adobe-illustrator - 如何使用像素获取所选 Illustrator PathItem 的位置?

转载 作者:行者123 更新时间:2023-12-04 09:01:00 25 4
gpt4 key购买 nike

我有一个简单的问题,但似乎无法解决它:
我有 PathItem 并且 Illustrator 指出它在位置 (781px,250px)。

如何在 jsx 中获取这些值?

我注意到 路径项 继承位置属性页面项目 ,和位置
,但是当我尝试打印值时,我得到未定义:

$.writeln(app.activeDocument.selection[0].position.x);

如果我从上面的行中省略 .x ,我会在控制台中打印出来:
521,510

这些值是什么?它们是 x,y 坐标吗?在什么单位?如何转换为像素?

为什么我不能访问 x,y/top,left 属性?

我正在使用 Illustrator CS5。

最佳答案

@bradido 的回答很有帮助,但不完整。
Illustrator 似乎具有不同的坐标系:一个整体文档坐标系和一个基于当前事件画板的第二个坐标系(您可能定义了多个,但一次只有一个是“事件的”。)一个的原点位于画板的中心文档,而另一个的原点在左上角。它的 Y 值也向上增加。
首先使用 app.coordinateSystem 检查坐标系是明智的。属性,如果需要,还有一个转换函数 ( doc.convertCoordinate ) 来处理与中心的偏移。
这是一个片段,它演示了如何在 Illustrator 中检索符号的 x、y 值,稍后可以在 actionscript 中使用(使用坐标系转换):

var doc = app.activeDocument;
var sel = doc.selection;
var selLen = sel.length;
var code = 'var pointsOnMap:Vector.<Vec> = Vector.<Vec>([';
for(var i = 0 ; i < selLen ; i++){
var pos = doc.convertCoordinate(sel[i].position, app.coordinateSystem, CoordinateSystem.ARTBOARDCOORDINATESYSTEM);
code += 'new Vec('+(pos[0] + (sel[i].width * .5)).toFixed(2) + ' , ' + Math.abs((pos[1] - (sel[i].height*.5))).toFixed(2); // Math.abs(pos-height) - same for both coord systems ?
if(i < selLen-1) code += '),';
else code += ')]);pointsOnMap.fixed=true;';
}
$.writeln(code);
有关更多详细信息,请参阅此 thread on the Adobe Forums .

关于adobe-illustrator - 如何使用像素获取所选 Illustrator PathItem 的位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4840595/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com