我注意到在Java等其他语言中有像Vector2d这样的对象有一个乘法方法.我如何使用Actionscript 3做同样的事情?我知道Point或Vector3D类有add/substract方法,但都没有提供乘法/除法方法.
乘以两个Point对象的最佳方法是什么?会是这样的吗?
var p1:Point = new Point(10, 20); var p2:Point = new Point(30, 40); var p3:Point = new Point((p1.x * p2.x), (p1.y * p2.y));
还有为什么会在这些类中省略乘法/除法?
编辑*这是我在Java中看到的Vector2d类的链接:Java Vector2d乘法
什么是数学意义new Point((p1.x * p2.x), (p1.y * p2.y))
?在向量空间中,通常没有乘法,因为它根本不清楚,它应该做什么.
然而,在欧几里德空间的向量上定义了一个所谓的"标量乘法",它产生一个数字("标量",因此得名):
double s = p1.x * p2.x + p1.y * p2.y;
这很有用,例如,如果您需要测试线是否正交.但是,结果是数字不是矢量.
与矢量有关的另一个方面是缩放它们:
double factor = 1.5; Point p3 = new Point(factor * p1.x, factor * p2.y);
这里的结果确实是一个点,但输入是一个数字和一个向量,而不是两个向量.所以,除非你能说,你的向量乘法的解释/意义是什么,你不应该定义一个.(注意,我不知道,你的提议是否有用 - 它根本不是我所知道的"标准"乘法).