当前位置:  开发笔记 > 编程语言 > 正文

将两个Point对象相乘

如何解决《将两个Point对象相乘》经验,为你挑选了1个好方法。

我注意到在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乘法



1> Dirk..:

什么是数学意义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);

这里的结果确实是一个点,但输入是一个数字和一个向量,而不是两个向量.所以,除非你能说,你的向量乘法的解释/意义是什么,你不应该定义一个.(注意,我不知道,你的提议是否有用 - 它根本不是我所知道的"标准"乘法).

推荐阅读
无名有名我无名_593
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有