好。我在数学上很烂!
我有一种情况,我想根据角度知道(x,y)
在边界正方形上的位置。
0和360度的角度应笔直。
假设我们有一个(0,0,99,99)的边界平方,那么0度的角度将返回一个(49,0)点
45度角将返回(99,49)点
180度将产生(49,99),270将产生(0,49)并且360将返回(49,0)
我不知道如何计算。任何有关在哪里阅读以便于我学习的建议,将不胜感激。
更好的是伪代码,甚至是JavaScript中的某种东西。
谢谢, 迈克
答案 0 :(得分:0)
最近,我只是用C#see also为这个问题提供了一个答案。
好吧,将它翻译成JS并不是一件容易的事。
var c=document.getElementById("myCanvas");
var rect = c.getBoundingClientRect();
var center = [rect.x + rect.width / 2.0, rect.y + rect.height/2.0]
function calCoor(theta, a, b)
{
var rad = theta * Math.PI / 180.0;
var x, y;
var tan = Math.tan(rad);
if (Math.abs(tan) > b/ a)
{
x = tan > 0 ? a : -a;
y = b / tan;
} else
{
x = a * tan;
y = tan < 0 ? b : -b;
}
return [x,y]
}
var angle = 90;
var random_post = calCoor(angle, rect.width / 2.0, rect.height/2.0)
console.log("Angle at: " + angle)
console.log("x at: " + (random_post[0] + center[0]))
console.log("y at: " + (random_post[1] + center[1]))
.square{
width:100px;
height:100px;
border-style: solid;
}
<div class="square" id="myCanvas"></div>