需要帮助理解此代码,该代码用于使图像以椭圆形状移动。我不明白的是,e,px和py变量的公式。 e变量究竟是什么定义了复杂的方式?我知道它使用了一些数学公式,但我不知道哪些数学公式。
export class AppComponent {
presentYear = this.getCurrentYear();
minYear = this.getCurrentYear();
year: number;
private getCurrentYear(): number {
return new Date().getUTCFullYear();
}
public setMinYear(value: number) {
const firstYear = 1950;
if (value >= firstYear) {
this.minYear = firstYear;
} else {
this.minYear = this.presentYear;
}
}
}
答案 0 :(得分:0)
Sinus和cosinus: 想象一个90°角的三角形。 1行是水平的,另一行是右侧是垂直的,第三行是从左下到右上。 我们称左边的角度是e(是的,它是你函数中的e)
e的正弦被定义为右边的垂直线除以对角线; cosinus e =水平线(接触角度e)/对角线。
-
现在绘制一个中间角为e且半径=对角线长度的圆。 如果抬起角度e,您将看到垂直线变大,水平线变小(保持对角线的长度不变),直到达到90°。当然,你可以超过90°,然后垂直线可以在左边。超过180°时,垂直线将指向下方(负坐标),......
这是sin和cos的一个用法:如果你设置一个角度,它们会给你一个y值和一个x值,在圆圈上显示1个点。它始终是介于-1和+1之间的数字。例如:sin(0)= 0(无垂直分量),cos(0)= 1
下面的代码为您提供了一个围绕中心(0,0)和半径100的圆圈。为此函数提供了一堆e值,您可以在圆上获得尽可能多的点
function rotate(e) {
var px = 100 * Math.cos(e);
var py = 100 * Math.sin(e);
}
现在,如果不是100 * cos(e)而是200 * cos(e),那么它就不再是一个圆圈了。每个x坐标将是两倍(与圆相比)。不同的rx和ry将产生椭圆。
你的变量b& h用于将椭圆的中心推到图像/ div / canvas /中的某个位置而不是角落(然后剪切大部分椭圆)。
这有帮助吗?