個人的な必要にせまられたので、Illustratorで角丸長方形の角を高さの比率で描画してみました。
(function () {
var doc = app.activeDocument;
// ユーザー入力
var rectWidth = Number(prompt("矩形の幅 (px):", "200"));
var rectHeight = Number(prompt("矩形の高さ (px):", "100"));
var cornerRatio = Number(prompt("角丸の比率
(高さに対する割合 0-0.5):", "0.2"));
if (isNaN(rectWidth) || isNaN(rectHeight) ||
isNaN(cornerRatio) || cornerRatio < 0 || cornerRatio > 0.5) {
alert("無効な入力値です");
return;
}
var cornerRadius = rectHeight * cornerRatio;
// 高さに対する比率で角丸を決定
// 矩形の作成(アートボードの中央に配置)
var artboard =
doc.artboards[doc.artboards.getActiveArtboardIndex()];
var abBounds = artboard.artboardRect;
var centerX = (abBounds[0] + abBounds[2]) / 2;
var centerY = (abBounds[1] + abBounds[3]) / 2;
var rect = doc.pathItems.roundedRectangle(centerY +
rectHeight / 2, centerX - rectWidth / 2,
rectWidth, rectHeight, cornerRadius, cornerRadius);
alert("矩形を作成しました!");
})();
起動して幅と高さ、そして高さに対する比率を0〜0.5で指定します。0.5以上は指定しても意味が無いのでエラーになります。
上はデフォルト値の処理結果。下は比率を最大の0.5とした結果です。