Хардкорные математические и трехмерные фигуры с использованием canvas и javascript - PullRequest
5 голосов
/ 08 января 2012

У меня есть старый друг, математик. У него есть своя математика, чтобы сжать его формулы, которые невероятно красивы.

Он работает в программе Mathematica, которая преобразует формулы для 3D-фигур.

Интересно, можно ли получить эти цифры с помощью Canvas и JavaScript? См. Прилагаемую формулу и рисунок.

Я сам немного знаю об этом. Но я был бы рад, если бы кто-нибудь показал мне пример.

formula

3D-shape

Ответы [ 4 ]

5 голосов
/ 08 января 2012

Поскольку вы упоминаете Mathematica, я буду использовать его, чтобы предоставить еще несколько примеров для различных значений t. Я не могу помочь вам с холстом.

Это код Mathematica:

With[{a = 3, t = 0.7}, 
 RegionPlot3D[
  10^-(t x + y)^10 + 10^-(-t x + y)^10 + 10^-(t y + z)^10 + 
    10^-(-t y + z)^10 + 10^-(t z + x)^10 + 10^-(-t z + x)^10 > 
   5/2, {x, -a, a}, {y, -a, a}, {z, -a, a}, PlotPoints -> 50, 
   Boxed -> False, Axes -> None
 ]]

т = 0,2

Mathematica graphics

т = 0,4

Mathematica graphics

т = 0,7

Mathematica graphics

т = 1

Mathematica graphics

4 голосов
/ 08 января 2012

Это определенно возможно. Вы можете взглянуть на библиотеку javascript-surface-plot и рабочий пример на http://www.grvisualisation.50webs.com/javascript_surface_plot.html.. Она создает трехмерную модель из математической формулы, которую можно панорамировать и поворачивать по желанию.

Если вы посмотрите на код для примера, есть функция настройки, которую вам необходимо обновить до любой формулы, которую вы хотите. Просто нужно преобразовать вашу математическую формулу в JavaScript.

Я не уверен, что вы хотите делать с этими моделями, если у вас есть такая, но эта библиотека, кажется, соответствует вашим требованиям. Поиск html canvas 3d plot также вывел дополнительные библиотеки.

1 голос
/ 08 января 2012

Я бы подумал, WebGL идеально подходит для этого. Это графическое ускорение в новейших браузерах и может отображать в полном 3D.

Возможно, есть библиотеки, которые могут выполнять рендеринг из функций из коробки, но это новая технология, поэтому вам, возможно, придется написать большую часть ее самостоятельно.

1 голос
/ 08 января 2012

Вы действительно задаете два вопроса:

  1. Существуют ли библиотеки 3D-холстов: ДА K3D
  2. Существуют ли математические библиотекидля javascript: ДА обсуждается здесь

Если вы выполняете сложные основные математические уравнения (которые выглядят так, как вы), вам лучше делатьэто что-то вроде MatLab / Maple и выгрузка его в файл с последующим использованием 2D-библиотеки Canvas для визуализации изображения.У меня много 3D-данных, и я делаю это.Я запускаю скрипт Python, который вычисляет баллы, а затем добавляет его в HTML-файл (помните, веб-страницы не могут читать данные из файла, поэтому вы должны включить данные как часть вашего HTML-файла).Затем я загружаю html-файл и на дисплее генерирую изображение, используя EaselJS

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...