Я пытаюсь отображать уравнения MathML на svg, используя d3.js. Может ли кто-нибудь помочь мне получить квадратное уравнение на svg. Я пытался сделать это с использованием постороннего объекта без успеха.Рендеринг MathML на svg с использованием d3.js
ответ
Я потратил немало времени, пытаясь заставить его работать в JSFiddle без успеха, но он отлично работает на моем ПК. JSFiddle here. Не возражаете ли вы пробовать следующее и сообщить мне, работает ли оно с вами?
Шаг 1. Загрузите MathJax
<script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
Шаг 2. Используйте этот код для добавления foreignObject
var svg = d3.select("body").append("svg").attr("width",400).attr("height",400)
var text = svg.append("foreignObject").attr("width",100).attr("height",100)
text.text("$$ x = \\sum_{i \\in A} i^{2} $$")
MathJax.Hub.Queue(["Typeset",MathJax.Hub]);
Однако, если вы по-прежнему предпочитают MathML, то вы можете использовать следующие:
text.html("<math display=\"block\"><mrow><mi>x</mi><mo>=</mo><mfrac><mrow><mo>−</mo><mi>b</mi><mo>±</mo><msqrt><mrow><msup><mi>b</mi><mn>2</mn></msup><mo>−</mo><mn>4</mn><mi>a</mi><mi>c</mi></mrow></msqrt></mrow><mrow><mn>2</mn><mi>a</mi></mrow></mfrac></mrow></math>")
Я знаю, что добавляю больше сценариев для загрузки, но я понимаю, что MathML не очень му ch используется больше.
Надеюсь, это поможет.
EDIT Наконец JSFiddle здесь: link
Благодаря
Это хорошо, но у нас есть вход как правильный MathML, который необходимо визуализировать на SVG –
Нет проблем. Я думаю, что рендеринг MathML с использованием MathJax лучше. Кроме того, я не уверен, что MathML действительно поддерживается. Хром не обращает на это внимания (как упоминает @RobertLongson) – Nikos
Снова тот же вопрос. Возможно ли преобразовать MathML в синтаксис MathJax. –
Вы две ошибки
- foreignObject должны быть ширина/высота атрибуты
- MathML элементы должны быть созданы в MathML имен
Фиксация этих результатов в этом ...
d3.ns.prefix.mathml = "http://www.w3.org/1998/Math/MathML";
var foreignObject = d3.select("body")
.append("svg")
var x = foreignObject.append("foreignObject")
.attr("requiredExtensions", "http://www.w3.org/1999/xhtml")
.attr("width", "100")
.attr("height", "100")
var text = x.append("mathml:mo")
var row = x.append("mathml:mrow")
row.append("mathml:mi").text("a")
row.append("mathml:mo").text('\u2062')
var msup = row.append("msup")
msup.append("mathml:mi").text("x")
msup.append("mathml:mi").text("2")
row.append("mathml:mo").text("+")
row.append("mathml:mi").text("b")
row.append("mathml:mo").text('\u2062')
row.append("mathml:mi").text('x')
row.append("mathml:mo").text('+')
row.append("mathml:mi").text('c')
Я пробовал для ax square + bx + c. Но опять же нет успеха JSFiddle: http://jsfiddle.net/p3wuu2pw/3/ –
Ваша скрипка работает для меня в Firefox. –
Спасибо за ваши усилия. Это странно. Он не работает в Chrome. Есть ли что-то, чего я не вижу? –
- 1. Рендеринг в Backbone.js с использованием d3.js и svgs
- 2. Рендеринг D3.js в приложении Ampersand.js с использованием Jade
- 3. d3 svg не рендеринг на рендеринг исходного компонента. React
- 4. данные сортировки, привязанные к элементам svg, с использованием d3.js
- 5. рендеринг визуализации библиотеки d3.js для colorbrewer
- 6. d3 - рендеринг html-таблицы поверх элемента svg
- 7. Слайд-шоу с внешними SVG с использованием d3.js
- 8. Большой d3.js график, холст или рендеринг на стороне сервера?
- 9. D3.js SVG на интерактивной карте OpenLayers3
- 10. D3.js элемент SVG обхода
- 11. Fit Text в SVG элемент (с использованием D3/JS)
- 12. SVG-фильтр с использованием d3 js не работает в IE
- 13. Смутно о стиле SVG с d3.js
- 14. Создание скроллбары с SVG и d3.js
- 15. Выполнение SVG-текста с помощью d3.js
- 16. SVG градиент стрелок с d3.js
- 17. Удаление текстовых элементов svg с d3.js
- 18. Итерационные элементы SVG с D3.js
- 19. d3.js. Как добавить documentFragment в SVG?
- 20. Рендеринг SVG с использованием средств печати wxPython
- 21. AngularJS SVG-рендеринг с использованием ng-repeat
- 22. Вертикальная дуга с использованием D3.js
- 23. Рендеринг SVG с Delphi
- 24. Inline-SVG не рендеринг при генерации JS
- 25. D3.js SVG изображение рамки рамки смещения
- 26. Попытка построения графика с использованием d3.js
- 27. Перепозиционирование SVG: Rect элементы, созданные с помощью d3.js (с использованием либо d3 или JQuery)
- 28. Рендеринг geoJSON с использованием D3 и листовки с использованием imageOverlay
- 29. D3.js Версия 4. Основной рендеринг круга
- 30. Выбор элементов SVG с использованием D3 DataMaps?
Можете ли вы показать нам код, который вы попытались реализовать? –
Я начал с образца. Код находится на http://jsfiddle.net/p3wuu2pw/ –