Назад к оглавлению

Построение 2D и 3D графиков

3.1 Построение графиков функций

Mathpar позволяет строить табличные графики ($tablePlot$), графики функций, которые заданы явно ($plot$) или параметрически ($paramPlot$). Можно строить несколько разных графиков в одной системе координат($showPlots$). Окружение для построения графиков задается командой set2D(). Если у команды set2D() нет параметров, то границы для графиков расчитываются автоматически, а для явных функций выбирается интервал $[0,1]$ по оси абсцисс. Наименования осей координат будет $X$ и $Y$, соответственно. Заголовок у графика будет отсутствовать. Если команда set2D() пользователем не задавалась, то автоматически устанавливается set2D() без параметров в начале сеанса данного пользователя.

Cуществует 2 формата — полный и сокращенный.

Полный формат предполагает 3 группы параметров, каждая из которых пишется в квадратных скобках: set2D([x0,x1, y0, y1],['xTitle','yTitle','title'] ,[0,1,12,3,5]).

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

Вторая кваадратная скобка это надписи к осям координат и подпись ко всему рисунку. Если в этой скобке 2 аргумента — то это первые два — подписи к осям, а если только один аргумент — то это название к рисунку.

Третья кваадратная скобка содержит 5 чисел: 1) 1 — означает: установить режим черно-белый (0 - цветной) 2) 1 — означает: установить равный масштаб по обеим осям (0- золотое сечение) 3) это размер шрифта для подписей 4) это толщина линий графиков 5) это толщина координатных осей

Есть для этой скобки и 3 сокращенных варианта:['ES'],['BW'],['ESBW']. Они, соответственно, устанавливают в значение 1 или первый параметр, или второй параметр, или оба.

Любая из 2х последних скобок может отсутствовать, могут отсутствовать и обе.

Существует 7 сокращеных вариантов для этой команды: 1) set2D(); 2) set2D(x0,x1); 3) set2D(x0,x1,'title');\ 4) set2D(x0,x1,y0,y1); 5) set2D(x0,x1,y0,y1,'title'); 6) set2D(x0,x1,'title','nameOX','nameOY');\ 7) set2D(x0,x1,y0,y1,'title','nameOX','nameOY').\

Числа $x0$ и $x1$ $(x0<x1)$ задают интервал по оси $OX$. Числа $y0$ и $y1$ $(x0<x1)$ задают интервал по оси $OY$. Если эти параметры не заданы, то расчитываются автоматически. $nameOX$ — подпись на оси $OX$, $nameOY$ — подпись на оси $OY$, $title$ — заголовок графика.

Кроме этого, разрешается задать еще один или два ключа, которые должны стоять последними в списке параметров: $BW$ и $ES$. $BW$ указывает на построение черо-белого графика. $ES$ указывает на равенство масштаба шкалы $x$ масштабу шкалы $у$. Всего имеется $7*4=28$ разных способов задания параметров окружения.

Характер линии, которая изображается на графике каждой из функций $(plot, tablePlot, paramPlot)$ может быть разный: сплошная линия, пунктирная линия и линия, которая оканчивается стрелкой. Для этого предназначены параметы: '$dash$' (пунктир), '$arrow$' (стрелки) и их сочетание '$dashAndArrow$', которые должны стоять в конце списка параметров этих функций.

Например, plot( x^2+1 , 'dash').

Если нескольким отдельным графикам присвоены имена, например, P=plot(x^2); Q=tablePlot([[1,2],[3,4]]); в этом случае их можно изобразить вместе с помощью команды showPlots([P,Q]).

У этой команды есть дополнительные опции 'noAxes' — не изображать оси координат и 'lattice' — изображать сетку. Например, showPlots([P,Q], 'lattice').

Полученный график можно загрузить с сайта. Для этого под полем ввода нужно кликнуть на кнопку $\fbox{ Загрузить }$, и файл с графиком будет загружен на компьютер пользователя.

Явное задание функции

Для построения графика функции $f=f(x)$ используется команда plot(f). Другие варианты команд: 1) plot(f, [x0, x1]), где $[x0, x1]$ — интервал по оси $OX$; 2) plot(f, [x0, x1], 'options'), где $[x0, x1]$ — интервал по оси $OX$, 'options' — принимает следующие значения: 1)'dash' — график будет изображен пунктиром;\ 2)'arrow' — последняя точка графика будет нарисована со стрелкой; 3)'dashAndArrow' — график будет изображен пунктиром и последняя точка графика будет нарисована со стрелкой. 3) plot(f, 'options').

Можно строить графики функций, содержащих параметры. Эти параметры необходимо определить как переменные в задании окружения (см. пример 3). Параметры могут принимать значения из отрезка $[0;1]$. Сначала график строится для значений параметров, равных единице. Эти значения можно менять. Для этого надо выбрать имя параметра и передвинуть бегунок до нужного значения, затем нажать на кнопку $\fbox{ Построить }$.

Пока нет результата

Пока нет результата

Пока нет результата

Пока нет результата

Пока нет результата

Пока нет результата

Пока нет результата

Пока нет результата

Функции, заданные параметрически

Для построения графиков функций, которые заданы параметрически, необходимо выполнить команду paramPlot([f, g], [t0, t1]), где $f = x(t)$, $g = y(t)$ — функции, заданная параметрически, $[t0, t1]$ — интервал значений для изменения параметра. Другой вариант команды: paramPlot([f, g], [t0, t1], 'options'), где $[t0, t1]$ — интервал значений для изменения параметра, $'options'$ — принимает следующие значения: 1)$'dash'$ — график будет изображен пунктиром;\ 2)$'arrow'$ — последняя точка графика будет нарисована со стрелкой; 3)$'dashAndArrow'$ — график будет изображен пунктиром и последняя точка графика будет нарисована со стрелкой.

Пока нет результата
Пока нет результата
Пока нет результата
Пока нет результата

Пока нет результата

Пока нет результата
Пока нет результата
Пока нет результата

Функции, которые заданы таблицей значений

Для построения графиков функций, заданных табличными значениями, необходимо выполнить команду: tablePlot([[x_{1,…, x_{n}],[y_{11},…,a_{1n}],…,[y_{k1},…,a_{kn}]])} Другой вариант команды: tablePlot([[x_{1,…, x_{n}],[y_{11},…,a_{1n}],…,[y_{k1},…,a_{kn}]], 'options')} ,где $'options'$ — принимает следующие значения: 1)$'dash'$ — график будет изображен пунктиром;\ 2)$'arrow'$ — последняя точка графика будет нарисована со стрелкой; 3)$'dashAndArrow'$ — график будет изображен пунктиром и последняя точка графика будет нарисована со стрелкой.

Пока нет результата

Пока нет результата

Пока нет результата

Пока нет результата

Пока нет результата

Пока нет результата

Функции, которые заданы таблицей значений по точкам

Для построения графиков функций по точкам, заданных табличными значениями, необходимо выполнить команду: pointsPlot([[x_{1,…, x_{n}],[y_{1},…,y_{n}]], [s_{1},…,s_{n}], [kv_{1},…,kv_{n}], [kg_{1},…,kg_{n}])}, где $s_{n}$ — подпись точки, $kv_{n}$ — коэффициент поворота вокруг точки (принимает значения от 0 до 7, и означает поворот на ($kv_{n}$ * 45) градусов), $kg_{n}$ — коэффициент смещения вдоль оси $OX$ (если отрицательный то смещение происходит влево). Сокращенные варианты команды: pointsPlot([[x_{1,…, x_{n}],[y_{1},…,y_{n}]], [s_{1},…,s_{n}])} или pointsPlot([[x_{1,…, x_{n}],[y_{1},…,y_{n}]], [s_{1},…,s_{n}], [kv_{1},…,kv_{n}])} или pointsPlot([[x_{1,…, x_{n}],[y_{1},…,y_{n}]], [s_{1},…,s_{n}], [kv_{1},…,kv_{n}], [kg_{1},…,kg_{n}])}.

Пока нет результата

Пока нет результата

Пока нет результата

Пока нет результата

Пока нет результата

Пока нет результата

Построение разных графиков функций в одной системе координат

Для построения графиков функций, заданных разными способами, необходимо сначала построить график каждой функции, а затем выполнить команду showPlots([f_1, f_2, …, f_n]). Другие варианты команды: showPlots([f1, f2, f3, f4], 'noAxes'), где 'noAxes' — параметр, указывающий на изображение графика без осей. или showPlots([f1, f2, f3, f4], 'lattice'), где 'lattice' — параметр, указывающий на изображение графика c решеткой.

Пока нет результата

Пока нет результата

Пока нет результата

Построение графов

Для построения графов необходимо выполнить команду plotGraph([[a_{11,…,a_{1n}],…,[a_{n1},…,a_{nn}]], [[x_{1},…, x_{n}],[y_{1},…,y_{n}]])}, где $[[a_{11},…,a_{1n}],…,[a_{n1},…,a_{nn}]]$ — матрица смежности, $[[x_{1},…, x_{n}],[y_{1},…,y_{n}]]$ — матрица координат.

Пока нет результата

Кроме того, можно выполнить команду лишь с первым параметром plotGraph([[a_{11,…,a_{1n}],…,[a_{n1},…,a_{nn}]])}, где $[[a_{11},…,a_{1n}],…,[a_{n1},…,a_{nn}]]$ — матрица смежности.

Пока нет результата

Можно выполнить команду с одним числовым параметром plotGraph(N), где $N$ — количество вершин в графе.

Пока нет результата

Текст на графиках

Для того, чтобы делать любые виды надписей используется функция textPlot()

Для задания одной надписи записывают в кваратных скобках следуюшие параметры: ['str',sizeText,xCor,yCor,alpha]

где str - это текст; sizeText - размер шрифта; xCor, yCor - координаты на экране первой буквы текста, alpha - угол наклона текста (по умолчанию, если это параметр не указан, то он равен нулю).

В одной команде можно определить сколько угоно надписей, разделяя их запятыми: textPlot([],[],[],...[]).

3.2 Построение 3D графиков функций

Окружение для построения 3D графиков задается командой set3D()

Существует несколько вариантов для этой команды: 1) set3D(x0,x1,y0,y1,z0,z1); 2) set3D(x0,x1,y0,y1,z0,z1,gridSize); 3) set3D(x0,x1,y0,y1,z0,z1,gridSize,framesNumber); 4) set3D(x0,x1,y0,y1,z0,z1,gridSize,framesNumber,[a1,a2,...]);

Числа $x0$ и $x1$ $(x0<x1)$ задают интервал по оси $OX$. Числа $y0$ и $y1$ $(y0<y1)$ задают интервал по оси $OY$. Числа $z0$ и $z1$ $(z0<z1)$ задают интервал по оси $OZ$. $gridSize$ отвечает за размер сетки параллелепипеда в котором строится график. $framesNumber$ отвечает за количество кадров при построении графика с параметрами, изменение которых можно наблюдать в виде изменения кадров. $a1$ и $a2$ отвечают за конечное значение параметров функции. Эти значения будут выставлены в ползунки, которые появляются под текстом з запросом пользователя. При изменении параметров во время изменения кадров, их значения будут меняться в диапазоне от 1.0 до $a1$ для первого параметра.

Явное задание функции. Построение на сервере

Mathpar позволяет строить 3D графики функций, которые заданы явно. Для построения 3D графика функции $f=f(x, y)$ используется команда plot3d(f, [x0, x1, y0, y1]), где $[x0, x1]$ — интервал по оси $OX$, $[y0, y1]$ — интервал по оси $OY$. Кроме того, полученные графики можно вращать и масштабировать: увеличивать либо уменьшать.

Перемещение мыши с нажатой левой кнопкой приводит к вращению системы координат графика. После остановки происходит перерисовка графика в новой повернутой системе координат. Перемещение мыши с нажатой левой кнопкой и нажатой клавишей Shift приводит к изменению масштаба изображения. После остановки перемещения происходит перерисовка графика в новом масштабе.

Пока нет результата

Пока нет результата

Пока нет результата

Явное задание функции. Построение на стороне пользователя

Также графики функций, которые заданы явно можно построить командой explicitPlot3d(f, xMin, xMax, yMin, yMax, zMin, zMax), где числа $xMin, xMax, yMin, yMax, zMin, zMax$ задают область в пространстве, имеющую форму параллелепипеда, в которой изображается явная функция.

Допускаются, кроме того, следующий набор аргументов: $(f, xMin, xMax, yMin, yMax, zMin, zMax, gridSize)$, где $gridSize$ отвечает за размер сетки параллелепипеда в котором строится график.

Можно задавать только одну функцию, следующим образом: explicitPlot3d(f), в этом случае предполагается, что будет изображена функция $f$ в кубе $20\times20\times20$, центр которого располагается в начале координат.

Используя explicitPlot3d() вы можете вращать систему координат перемещая указатель мышки с нажатой левой клавишей. Также вы можете сдвигать начало системы координат перемещая указатель мышки с нажатой правой клавишей.

Для построения графика функции во времени с изменением параметров необходимо указать сначала количество кадров. Затем следует выставить конечное значение параметров используя ползунки. Для построения графика необходимо нажать кнопку - 'Построить'. Значение количества кадров и параметры на ползунках можно указать через set3D().

Пока нет результата

Пока нет результата

Построение 3D графиков функций, которые заданы параметрически. Построение на сервере

Mathpar позволяет строить 3D графики, которые заданы параметрически

Для построения графика необходимо передать 3 функции $f(x,y)$, $g(x,y)$ и $h(x,y)$, используя команду paramPlot3d([[f], [g], [h]], [x0, x1, y0, y1]), где $[x0, x1]$ — интервал по оси $OX$, $[y0, y1]$ — интервал по оси $OY$.

Сфера

Пока нет результата

Тор

Пока нет результата

Спираль

Пока нет результата

Логарифмическая спираль

Пока нет результата

"Морская раковина"

Пока нет результата

Трилистник

Пока нет результата

Поверхность Дини

Пока нет результата

Лента Мёбиуса

Пока нет результата

Куб

Пока нет результата

Цилиндр

Пока нет результата

Конус

Пока нет результата

Усеченный конус

Пока нет результата

Песочные часы

Пока нет результата

Построение 3D графиков функций, которые заданы параметрически. Построение на стороне пользователя

Также графики функций, которые заданы параметрически можно построить командой parametricPlot3d(f, g, h, uMin, uMax, vMin, vMax, gridSize), где указаны 3 функции $f(u,v)$, $g(u,v)$ и $h(u,v)$ для осей $OX$, $OY$, $OZ$ Числа $uMin, uMax, vMin, vMax$ задают диапазон для параметров функций f, g и h. $gridSize$ отвечает за размер сетки параллелепипеда в котором строится график.

Вы можете вращать систему координат перемещая указатель мышки с нажатой левой клавишей. Также вы можете сдвигать начало системы координат перемещая указатель мышки с нажатой правой клавишей.

Для построения графика функции во времени с изменением параметров необходимо указать сначала количество кадров. Затем следует выставить конечное значение параметров используя ползунки. Для построения графика необходимо нажать кнопку - 'Построить'. Значение количества кадров и параметры на ползунках можно указать через set3D().

Тор с параметром

Пока нет результата

Спираль с параметром

Пока нет результата

Построение 3D графиков функций, которые заданы неявно

Mathpar позволяет строить 3D графики неявно заданных функций. Для построения графика функции $f(x,y,z)=0$ используется команда implicitPlot3d(f, xMin, xMax, yMin, yMax, zMin, zMax),

где числа $xMin, xMax, yMin, yMax, zMin, zMax$ задают область в пространстве, имеющую форму параллелепипеда, в которой изображается неявная функция.

Можно задавать только одну функцию, следующим образом:

implicitPlot3d(f),

в этом случае предполагается, что будет изображена функция $f$ в кубе $20\times20\times20$, центр которого распологается в начале координат.

Вы можете вращать систему координат перемещая указатель мышки с нажатой левой клавишей. Вы можете сдвигать начало системы координат перемещая указатель мышки с нажатой правой клавишей.

Moжно, дополнительно, указывать координаты источника света, цвет и сетку. По умолчанию принимается сетка из 50 точек на кажом ребре параллелепипеда.

Цвет в формате RGB (красный, зеленый, голубой) задается числом

$R*256*256+G*256+B$,

где каждая буква обозначает неотрицательное целое число не превосходящее 255. Например, $255*256*256$ — красный цвет, а $255*256*256+ 255*256$ — желтый (красный+зеленый). Допускаются, кроме того, следующие наборы аргументов:

$(f,xMin, xMax, yMin, yMax, zMin, zMax, gridSize)$,

$(f,xMin, xMax, yMin, yMax, zMin, zMax, lightX, lightY, lightZ, gridSize )$,

$(f,xMin, xMax, yMin, yMax, zMin, zMax, lightX, lightY, lightZ, color, gridSize)$.

Для построения графика функции во времени с изменением параметров необходимо указать сначала количество кадров. Затем следует виставить конечное значение параметров используя ползунки. Для построения графика необходимо нажать кнопку - 'Построить'. Значение количества кадров и параметры на ползунках можна указать через set3D().

Пока нет результата

Гиперболоид

Пока нет результата

Красная сфера

Пока нет результата

Желтая поверхность с центральной симметрией.

Пока нет результата

Органные трубы.

Построение разных 3D графиков функций в одной системе координат

Для построения графиков функций, заданных разными способами, необходимо выполнить команду showPlots3D(f, g), где f и g - команды для постройки других графиков функции

Параметры окружения можно задать с помощью set3D().

Вы можете вращать систему координат перемещая указатель мышки с нажатой левой клавишей. Также вы можете сдвигать начало системы координат перемещая указатель мышки с нажатой правой клавишей.

Для построения разных графиков функции в одной системе координат во времени с изменением параметров необходимо указать сначала количество кадров. Затем следует выставить конечное значение параметров используя ползунки. Для построения графика необходимо нажать кнопку - 'Построить'. Значение количества кадров и параметры на ползунках можно указать через set3D().

Пока нет результата

3.3 Геометрия

paintElement'operator1; operator2;... operatork;', - это инструмент для построения рисунков для школьной геометрии.

Операторы задаются так: operator(arg_1: type_1,.. arg_n: type_n = default): returnType arg_1,.. arg_n - список аргументов оператора. type_1,.. type_n - типы аргументов, строки или числа, или другой объект. = default - значение которое используется при отсутствии аргумента. returnType - тип возвращаемого объекта.

У операторов могут быть дополнительный аргумент label: string, который определяет подпись фигуры, и требование отобразить на рисунке: • label не задан - фигура используется как промежуточная и НЕ рисуется. • label = \%\% - фигура рисуется, но без подписи. • label = \%text\% - фигура подписывается текстом.

Подпись фигуры: operator (arg_1,.. arg_n).display(\%text\%);

Cтроки отделяются знаками процента, а не кавычками, как в языке mfthpar.

Пример (построить окружность)

Circle(radius: r1, center: Point = Point(x1, y1)). Можно применять разные способы построения окружности: \ • Circle(r1, Point(x1, y1)); • Circle(r1); - центр автоматически будет в x1=0, y1=0. • R = r1; P = Point(x1, y1).display(“\% O1 \%); C = Circle(R, P);

Операторы

Point(x: number1, y: number2) - конструктор точки. • x, у - позиция точки.

Пока нет результата

Line(point1: Point, point2: Point) - конструктор линии. • point1, point2 - точки линии. Порядок не имеет значения.

Пока нет результата

Polygon(point1, point2, ..., pointN: Point[]) - конструктор полигона, фигуры являющейся списком точек соединенных отрезками. Последняя точка соединяется с первой. • point1, point2, ..., pointN – Вершины полигона. Длинна списка вершин не ограничена.

Пока нет результата

Rectangle(width: number1, height: number2, bottomLeft: Point = Point(1, 1)) - конструктор горизонтального прямоугольника. • width - ширина прямоугольника. • height - высота прямоугольника. • bottomLeft - нижняя левая точка прямоугольника.

Пока нет результата

Square(size: number, bottomLeft: Point = Point(x1, y1)) - конструктор квадрата. • size - длинна стороны квадрата. • bottomLeft - нижняя левая точка квадрата.

Пока нет результата

Triangle(point1: Point, point2: Point, point3: Point) - конструктор треугольника по трем точкам. Порядок не имеет значения. • point1, point2, point3 - точки треугольника.

Пока нет результата

Circle(radius: number1, center: Point = Point(x1, y1)) - конструктор круга. • radius - радиус круга. • center - центр круга.

Пока нет результата

Ellipse(width: number1, height: number2, center: Point = Point(x1, y1)) - конструктор элипса. • width – горизонтальная полуось эллипса. • height - вертикальная полуось эллипса. • center - центр эллипса.

Пока нет результата

normal(point: Point1, line: Line1):Point - построить перпендикуляр из точки на прямую. Возвращает точку пересечения перпендикуляра и прямой. • point - точка из которой восстанавливается перпендикуляр. • line – прямая к которой восстанавливается перпендикуляр.

Пока нет результата

median(point: Point, line: Line): Point - построить медиану из точки на отрезок. Возвращает середину отрезка. • point - точка из которой построить медиану. • line – отрезок, на который опирается медиана.

Пока нет результата

Text(text: \%string1\%, leftBottom: Point1, fontSize: number = 10) - написать текст, начиная его в определенной точке. • text - собственно текст. • leftBottom - нижняя левая (начальная) точка текста. • fontSize - размер шрифта текста.

Пока нет результата

middle(line: Line): Point - найти точку середины отрезка. • line - отрезок, середину которого нужно найти.

Пока нет результата

incircle(triangle: Triangle): Circle - построить окружность вписанную в труегольник. • triangle - треугольник в который надо вписать окружность

Пока нет результата

Circumcircle(triangle: Triangle): Circle - построить окружность описанную вокруг треугольника. • triangle - треугольник вокруг которого надо описать окружность

Пока нет результата

lineCircleCross(line: Line, circle: Circle): Point[] - найти и вернуть точки пересечения линии и окружности. • line - линия которая может пересекать окружность. • circle – окружность, которая может пересекать линию.

Пока нет результата

circlesCross(circle1: Circle, circle2: Circle): Point[] - найти и вернуть точки пересечения двух окружностей. • circle1, circle2 – окружности, которые могут перескаться.

Пока нет результата

Конец раздела о графиках.

Назад к оглавлению