Вопрос или проблема
Мне нужно построить 3D электрическое поле, поэтому подойдет либо график векторного поля (длина стрелки = сила поля), либо линии потока.
Я НЕ занимаюсь кодированием или программированием, так что не использую matplotlib, Matlab, Mathematica, Python и т. д. В прошлом я использовал Desmos для создания 2D графиков и других вещей.
Есть какие-нибудь предложения? Спасибо.
Без кода
Чтобы построить 3D векторное поле в Desmos, вы можете использовать что-то вроде Графика векторного поля от Эллиота Уаймора. Для этого инструмента вам просто нужно указать три компонента векторной функции. Вы также можете изменить область для построения, а также длину и толщину векторов.
Другой проект, основанный на GeoGebra, – это 3D векторное поле от Хуана Карлоса Понсе Кампузано. Однако он немного хуже, чем предыдущий вариант, так как у вас есть только возможность масштабировать весь график, и деления осей даже не изменяются с учетом масштаба.
Однострочник
Хотя вы указали, что не хотите писать код, следующие варианты на самом деле представляют собой всего лишь одну строку вызова функции и не сложнее, чем сказать “x-компонента функции равна …, а y-компонента равна…, и т.д.” на естественном языке. Они предоставляются как резервные варианты на случай, если вам понадобятся более тонкие настройки или более привлекательные графики.
Вы можете использовать plot_vector_field3d()
функцию в SageMath. Просто скопируйте две строки примерного кода, указанные в документации, которые также приведены с аннотацией ниже, в SageMathCell (это онлайн, так что вам не нужно настраивать ничего локально), и измените на функцию, которую хотите построить.
# Объявите переменные
x,y,z = var('x y z')
# Три компоненты функции,
# за которыми следуют диапазоны x, y и z осей во входных данных.
plot_vector_field3d((x*cos(z), -y*cos(z), sin(z)),
(x,0,pi), (y,0,pi), (z,0,pi))
Если у вас есть Mathematica (я пробовал метод ниже, используя WolframAlpha, но, к сожалению, это не работает), вы можете просто использовать функцию VectorPlot3D
. Вот пример из документации:
VectorPlot3D[{x, y, z}, {x, -1, 1}, {y, -1, 1}, {z, -1, 1}]
Первый аргумент указывает функцию, которую вы строите, как f(x) = <x, y, z>, в то время как следующие три аргумента ограничивают оси x, y и z всем диапазоном [-1, 1].
Ответ или решение
Конечно! Если вам нужно построить 3D векторное поле (например, электрическое поле) без необходимости программирования, вот несколько простых и доступных инструментов.
1. Desmos
Вы можете использовать Vector Field Grapher от Эллиота Уаймора. Это интерактивный графический редактор, где вы сможете задать три компонента векторного поля. Инструмент позволяет менять область, в которой вы будете строить график, а также регулировать длину и толщину стрелок.
2. GeoGebra
Другой вариант – использование 3D Vector Field от Хуана Карлоса Понсе Кампусано, основанного на GeoGebra. Этот инструмент позволяет вам строить 3D векторными полями, хотя он немного менее функционален по сравнению с Desmos. В нем вы сможете регулировать масштаб всего графика, но деление по осям не будет изменяться в зависимости от масштаба.
3. Сервисы без кодирования
Хотя вы упомянули, что не хотите писать код, есть простые онлайн-сервисы, которые требуют минимального ввода от вас. Например, можно использовать SageMath.
Вы можете зайти на SageMathCell и просто вставить два простых строкового кода из документации. Вот пример:
# Объявляем переменные
x,y,z = var('x y z')
# Три компонента векторного поля, и диапазоны для осей
plot_vector_field3d((x*cos(z), -y*cos(z), sin(z)), (x,0,pi), (y,0,pi), (z,0,pi))
Просто измените функцию и диапазоны на те, которые вас интересуют.
4. WolframAlpha
Если у вас есть доступ к Mathematica, вы можете воспользоваться командой VectorPlot3D
. Вот как это можно сделать:
VectorPlot3D[{x, y, z}, {x, -1, 1}, {y, -1, 1}, {z, -1, 1}]
В первом аргументе указывается функция, которую вы хотите построить. Вторые три аргумента определяют диапазоны для каждой из осей.
Заключение
Если вы ищете простые, готовые к использованию инструменты для построения 3D векторных полей, я рекомендую начать с Desmos или GeoGebra. Эти платформы достаточно интуитивно понятны и не требуют программирования. Если же вы захотите больше контроля над графиками, вы можете рассмотреть SageMath или WolframAlpha как более продвинутые инструменты. Надеюсь, это поможет вам создать нужный график!