Javascript 在椭圆形中绘制矩形
在有人建议将其移至之前,请听我说完。我希望有人能仔细检查我的老化三角计算,用JavaScript在Photoshop中画一个椭圆形的矩形 我有一个圆,我想知道W和H的长度 这很简单: W=2(cosθ/r) H=2(sinθ/r) r是圆的半径 我需要知道的是椭圆的W和H的长度 以下是一些注意事项:Javascript 在椭圆形中绘制矩形,javascript,math,trigonometry,photoshop,Javascript,Math,Trigonometry,Photoshop,在有人建议将其移至之前,请听我说完。我希望有人能仔细检查我的老化三角计算,用JavaScript在Photoshop中画一个椭圆形的矩形 我有一个圆,我想知道W和H的长度 这很简单: W=2(cosθ/r) H=2(sinθ/r) r是圆的半径 我需要知道的是椭圆的W和H的长度 以下是一些注意事项: 在这两种情况下,H的值相同。但很明显θ也发生了相应的变化 椭圆形的宽度可以认为是2r宽度的x倍 弦W和H始终分别为水平和垂直) 椭圆可以被认为是一个更宽的圆,而不是椭圆 W也是 W=2x(c
- 在这两种情况下,H的值相同。但很明显θ也发生了相应的变化
- 椭圆形的宽度可以认为是2r宽度的x倍
- 弦W和H始终分别为水平和垂直)
- 椭圆可以被认为是一个更宽的圆,而不是椭圆
// call the source document
var srcDoc = app.activeDocument;
var w = 120;
var h = 50;
selectThis(10,10,w, h);
function selectThis(top, left, right, bottom)
{
// =======================================================
var id1 = charIDToTypeID( "setd" );
var desc1 = new ActionDescriptor();
var id2 = charIDToTypeID( "null" );
var ref1 = new ActionReference();
var id3 = charIDToTypeID( "Chnl" );
var id4 = charIDToTypeID( "fsel" );
ref1.putProperty( id3, id4 );
desc1.putReference( id2, ref1 );
var id5 = charIDToTypeID( "T " );
var desc2 = new ActionDescriptor();
var id6 = charIDToTypeID( "Top " );
var id7 = charIDToTypeID( "#Pxl" );
desc2.putUnitDouble( id6, id7, top );
var id8 = charIDToTypeID( "Left" );
var id9 = charIDToTypeID( "#Pxl" );
desc2.putUnitDouble( id8, id9, left );
var id10 = charIDToTypeID( "Btom" );
var id11 = charIDToTypeID( "#Pxl" );
desc2.putUnitDouble( id10, id11, bottom );
var id12 = charIDToTypeID( "Rght" );
var id13 = charIDToTypeID( "#Pxl" );
desc2.putUnitDouble( id12, id13, right );
var id14 = charIDToTypeID( "Elps" );
desc1.putObject( id5, id14, desc2 );
var id15 = charIDToTypeID( "AntA" );
desc1.putBoolean( id15, true );
executeAction( id1, desc1, DialogModes.NO );
}
首先,根据r和θ定义圆和椭圆的公式为 圆圈: 椭圆形: 分别给a和b水平和垂直尺寸的比例
并考虑以下三角形,假设三角形位于圆/椭圆
内 对于圆,随着θ的变化,半径(r)不会变化,因为它是常数,Δr将为0,因此Δx和Δy也将产生0。然而,对于椭圆来说是不同的,这两个方程都导出到它们的导数中,其结果如下所示 其中a=b=1表示圆 因此,新三角形的宽度和高度将如下所示:通过将x+Δx和y+Δy分别加倍,可以得到宽度(W)和高度(H)。实际上,圆和椭圆的三角形都有以下宽度和高度公式,即
x+Δx=(r+Δr)cos(t)
和y+Δy=(r+Δr)sin(t)
,在圆的情况下,Δw=Δh=Δr=0
。因此椭圆的公式非常复杂,因为它涉及垂直和水平刻度的另外两个变量。椭圆内有无限多个矩形。你需要什么具体的矩形?我投票结束这个问题,因为这是一个数学问题,这不是一个编程问题。@Bicker如果你认为这样做是正确的,请随意关闭它。@Ghouldool我的评论是在我以自定义原因投票关闭时自动生成的。如果其他两位投票人同意我的意见,问题将被关闭。如果不同意,则不会。