标签: mathjs

在ember-cli中导入依赖项(例如,import math.js)

我对在ember-cli中导入依赖关系感到困惑,尤其是关于标准AMD案例,正如官方Ember Cli文档中所提到的那样.该文档没有提供太多的例子,在我看来,它假设读者对AMD有很好的了解,但对我来说并非如此.我的直接用例是import math.js. 不幸的是,math.js官方文档没有提供有关使用Ember Cli导入的示例.然后,我发现这篇文章有相对更清晰的例子,特别是下面的例子似乎非常相关.

app.import({
  development: 'vendor/lodash/dist/lodash.js',
  production:  'vendor/lodash/dist/lodash.min.js'
}, {
  'lodash': [
    'default'
  ]
}); 
Run Code Online (Sandbox Code Playgroud)

然后,我用math.js做了类似的事情,如下所示:

app.import({
  development: 'bower_components/mathjs/dist/math.js',
  production:  'bower_components/mathjs/dist/math.min.js'
}, {
  'mathjs': [
    'default'
  ]
});
Run Code Online (Sandbox Code Playgroud)

但是,它不起作用.当我尝试使用它时

import mathjs from 'mathjs'
Run Code Online (Sandbox Code Playgroud)

我收到了一个错误.最后,我使用了以下解决方案:

// Brocfile.js
app.import('bower_components/mathjs/dist/math.min.js');

// some controller.js
var math = window.math
Run Code Online (Sandbox Code Playgroud)

虽然上面的解决方案有效,但我不喜欢它,因为它可能会受到名称冲突的影响.此外,基于math.js的文档,在我看来它应该支持标准的AMD类型的导入.

所以,我的问题如下.
1.在lodash上面的例子中,'default'意思是什么?这是对相应模块中导出的任何内容的一般参考吗?如何判断我是否可以使用它(例如,math.js)?
2.如果模块支持require.js,那么它是标准的AMD模块吗?如果是这样,给出如下代码:

require.config({
  paths: {
    mathjs: 'path/to/mathjs',
  }
});
require(['mathjs'], function (math) {
  // use math.js
  math.sqrt(-4); // 2i
}); …
Run Code Online (Sandbox Code Playgroud)

javascript amd ember.js mathjs ember-cli

10
推荐指数
1
解决办法
1908
查看次数

获取已转换元素的局部坐标中的触摸位置

我有一个元素已经转换为a matrix3d给它透视.它代表手持设备的屏幕.

有一个背景图像显示了手持设备本身,并没有转换.定位保持它的元件,并且屏幕元件绝对位于其中,在left: 0; top: 0;容器的左上方,然后变换,其中原点位于容器的左上方.这是我与背景图像完美排列的最简单方法(我使用这个非常方便的工具来提出矩阵),它将屏幕元素从角落移开.

我希望能够通过鼠标和触摸事件与屏幕进行交互.为此,在点击或触摸事件中,我需要找到屏幕元素的局部坐标系中的坐标 - 即变换发生前的坐标.换句话说,当点击手持设备屏幕的左上角(不是页面边界框的左上角!)时,我想要[0, 0],当点击屏幕的右上角时,在这个转换的情况下实际上是在页面上以及右边,我想要的[untransformedWidth, 0].

鼠标事件提供offsetXoffsetY据称正是这样做的(下面更多内容),但触摸事件没有这些属性,所以我需要一种方法来自己计算它们.

使用math.js我可以输入转换矩阵并将其反转.我有一些代码来循环CSS规则来获取transform: matrix3d(...)规则(如果我不需要,我不想在我的代码中重复它),我将跳过 - 我知道它有效,因为数字匹配CSS.

请注意,CSS的列矩阵元素按列顺序排列,因此请matrix3d(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p)使用常规矩阵表示法,如下所示:

?            ?
? a  e  i  m ?
? b  f  j  n ?
? c  g  k  o ?
? d  h  l  p …
Run Code Online (Sandbox Code Playgroud)

javascript cross-browser css-transforms mathjs

6
推荐指数
1
解决办法
671
查看次数

如何将mathjs注入Angular.js?

我怎样才能将mathjs注入Angular.js?

我不能让它工作 - 我曾经bower install mathjs --save安装它.

更新:JS min文件正确注入index.html

我需要将其注入主模块或控制器吗?我尝试了两个并在页面加载时出现了一个白色屏幕,其中包含有关模块不可用的错误消息.

angularjs mathjs

2
推荐指数
2
解决办法
2040
查看次数

离子2中的MathJS

有人可以帮我如何在ionic 2中使用mathjs吗?我只是不导入使用它,真的不知道该怎么办。

在ionic 1中,加载和使用库很容易,但在ionic 2中则不是。

谢谢!

mathjs ionic2

1
推荐指数
1
解决办法
912
查看次数

JS 大数分数且不损失精度

带分数支持的大数字:

我想在不损失精度的情况下执行数学运算。我怎样才能使用 JavaScript 来做到这一点?首先我尝试了decimal.js,但它没有保留精度,如下一个示例所示:

import {Decimal} from 'decimal.js';
const a1 = new Decimal(1);
const a2 = new Decimal(3);
console.log(a1.div(a2).toFraction()); // should be `1/3` but I get `33333333333333333333/100000000000000000000`
Run Code Online (Sandbox Code Playgroud)

接下来我尝试了fraction.js,但它不适用于大数字,例如:

import Fraction from 'fraction.js';
const n1 = new Fraction("99999999999999999999999999999999999999999999999");
const n2 = new Fraction("99999999999999999999999999999999999999999999990");
console.log(+(n1.sub(n2))) // should be 9, but I get 0
Run Code Online (Sandbox Code Playgroud)

是否有任何解决方案可以处理相对较大的数字(可以说与decimal.js支撑相同)但具有高精度(与fraction.js支撑相同)。

我检查了它在幕后的mathjs用途,所以对于大量数据来说没有任何优势:fraction.js

import * as math from "mathjs";
const a1 = math.fraction(math.number("99999999999999999999999999999999999999999999999"))
const a2 = math.fraction(math.number("99999999999999999999999999999999999999999999990"))
console.log(+(math.subtract(a1, a2))) …
Run Code Online (Sandbox Code Playgroud)

javascript math precision fractions mathjs

0
推荐指数
1
解决办法
300
查看次数