文章目录
1.算法程序
- 1.算法程序
- 2.作者答疑
illustrator是矢量编辑软件,画板是绘制处理的重要容器,在印刷方面的一个重要功能就是拼版,开发一个一键拼版功能,源代码如下所示:
function makeup(docWidth, docHeight, objWidth, objHeight, marginTop, marginRight, marginBottom, marginLeft) {
var width = (docWidth - marginLeft) - marginRight;
var height = (docHeight - marginTop) - marginBottom;
var w = parseInt(width / objWidth);
var h = parseInt(height / objHeight);
var wd = (width - (w * objWidth)) / 2;
var hd = (height - (h * objHeight)) / 2;
return {
top: marginTop + hd,
left: marginLeft + wd,
landscape: w,
portrait: h
};
}
function makeup2(docWidth, docHeight, objWidth, objHeight, marginTop, marginRight, marginBottom, marginLeft) {
var r1 = makeup(docWidth, docHeight, objWidth, objHeight, marginTop, marginRight, marginBottom, marginLeft);
var r2 = makeup(docHeight, docWidth, objWidth, objHeight, marginTop, marginRight, marginBottom, marginLeft);
var x1 = r1.landscape * r1.portrait;
var x2 = r2.landscape * r2.portrait;
var r = null;
if (x1 > x2) {
r = r1;
r.dir = 0;
} else {
r = r2;
r.dir = 1;
}
return r;
}
function getDocTopLeft(doc) {
var pos = doc.rulerOrigin;
if (pos[0] != 0 || pos[1] != 0) {
[doc.height + pos[1], pos[0]];
}
return [0, doc.height];
}
function drawLine(pObj, points) {
var line = pObj.pathItems.add();
line.stroked = true;
line.filled = false;
line.strokeWidth = 0.566929;
var color = new CMYKColor();
color.black = 100;
color.cyan = 0;
color.magenta = 0;
color.yellow = 0;
line.strokeColor = color;
line.setEntirePath(points);
}
function matrixmakeup() {
var doc = app.activeDocument;
var obj = doc.selection[0];
if (!obj) {
alert("请选择需要自动排版的对象!");
return;
}
var docWidth = doc.width;
var docHeight = doc.height;
var objWidth = obj.width;
var objHeight = obj.height;
var margin = 14.173225;
var madeup = makeup2(docWidth, docHeight, objWidth, objHeight, margin, margin, margin, margin);
var w = madeup.landscape;
var h = madeup.portrait;
var top = madeup.top;
var left = madeup.left;
var dir = madeup.dir;
if (dir == 1) {
}
var docPos = getDocTopLeft(doc);
var docLeft = docPos[0];
var docTop = docPos[1];
for (var widx = 0; widx
关注
打赏
最近更新
- 深拷贝和浅拷贝的区别(重点)
- 【Vue】走进Vue框架世界
- 【云服务器】项目部署—搭建网站—vue电商后台管理系统
- 【React介绍】 一文带你深入React
- 【React】React组件实例的三大属性之state,props,refs(你学废了吗)
- 【脚手架VueCLI】从零开始,创建一个VUE项目
- 【React】深入理解React组件生命周期----图文详解(含代码)
- 【React】DOM的Diffing算法是什么?以及DOM中key的作用----经典面试题
- 【React】1_使用React脚手架创建项目步骤--------详解(含项目结构说明)
- 【React】2_如何使用react脚手架写一个简单的页面?