-2
サイズと角度のある矩形の円周を求める方法は?角度から矩形の円周の点を取得する方法
function getRectangleCircumferencePoint(rectangle ,angle) {
// rectangle.width
// rectangle.height
// angle
return ???
}
サイズと角度のある矩形の円周を求める方法は?角度から矩形の円周の点を取得する方法
function getRectangleCircumferencePoint(rectangle ,angle) {
// rectangle.width
// rectangle.height
// angle
return ???
}
基準フレームが矩形の中心にセンタリングされているとしましょう。次いで
W = 8;
H = 4;
function point(W, H, angle){
var phi = Math.abs(Math.atan2(H, W));
//transform angle into interval [0, 2*PI)
var alpha = angle - Math.PI*2*Math.floor(angle/(Math.PI*2));
var x, y;
if(alpha <= phi || alpha >= 2*Math.PI-phi){ //right border
x = +W/2;
}else if(alpha >= Math.PI - phi && alpha <= Math.PI + phi){ //left border
x = -W/2;
}else if(alpha > phi && alpha < Math.PI - phi){ //top border
y = +H/2;
}else{ //bottom border
y = -H/2;
}
if(x === undefined){
//alpha might be here pi/2 so it's probably better to expand tan(alpha) rather
//than divide by "+inf"
x = y * Math.cos(alpha)/Math.sin(alpha);
}else if(y === undefined){
y = x * Math.tan(alpha);
}
return [x, y];
}
N = 4;
for(var i = 0; i < N; ++i){
var alpha = i*2*Math.PI/N;
var pnt = point(W, H, alpha);
console.log(pnt[0].toFixed(8), pnt[1].toFixed(8));
}
この印刷:たぶん
4.00000000 0.00000000
0.00000000 2.00000000
-4.00000000 0.00000000
-0.00000000 -2.00000000
[これは、第2の座標を第一の角度の特定の値によって、「影響」である長方形の側面を決定することによって進行し、次いで欠落を計算することができますヘルプ](http://www2.isu.edu/success/math/handouts/area_perimeter_circumference.pdf)を参照してください。あなた自身のコードを最初に行う必要があります –
http://idownvotedbecau.se/noattempt/ –