如何使用jsxgraph 0.99.7将文本对象成功放置在图像/多边形对象下?

时间:2019-02-06 05:45:24

标签: layer jsxgraph

我想简单地将文本对象放在使用jsxgraph创建的图像对象下。

  • 尝试设置文本对象第2层和图像对象第7层。
  • 尝试设置board.options.layer.text = 2,然后创建文本对象,然后再次设置board.options.layer.text = 9。

该对象在调查时确实给出了正确的图层值,但是它没有在视觉上做到这一点。这适用于非文本对象。这是文本相关的错误吗?

1 个答案:

答案 0 :(得分:0)

JSXGraph区分两种类型的文本:display:'html'display:'internal'。前一种类型的文本元素使用HTML标记,并且始终严格位于任何JSXGraph构造的“上方”(因此忽略了层结构)。后者的文本元素类型遵循图层结构。默认值为display:'html'。 这是一个示例(https://jsfiddle.net/8xms49pu/2/):

var circ = board.create('circle', [[0, 0], 3], 
                {fillColor: 'yellow', fillOpacity: 0.8});
var txt1 = board.create('text', [1, 1, 'HTML'], {layer: 1});
var txt1 = board.create('text', [-3.2, -1, 'internal'], 
                {layer: 1, display: 'internal'});

图像可以分层放置。这意味着,还必须使用display:'internal'。这是一个示例(https://jsfiddle.net/jdw7z1nq/1/):

var im = board.create('image', ['https://jsxgraph.org/wp/img/logo_tw.png', [-3, -3], [6, 6]], 
            {layer: 10});
var circ = board.create('circle', [[0,0], 3], 
            {fillColor: 'yellow', layer: 6});
var txt = board.create('text', [1, 1, 'Hello'], 
            {layer: 5, display: 'internal'});

HTML文本的优点是它们可以包含任何种类的HTML内容,例如MathJax或表单标签或图像,...,因此,您还可以考虑将图像放入文本元素中。