diff --git a/README b/README index 7dff468..249f7b3 100644 --- a/README +++ b/README @@ -1,14 +1,15 @@ PhaPl - a program to plot and research phase planes -Support Windows, Linux and Mac OS X (Mac OS X was not tested) +It supports Windows, Linux and Mac OS X (Mac OS X was not tested) -Dependencies +Dependencies: - Maxima - Qt4 (including QtCore, QtGui and QtScript) - LaTeX -- bulding from sources: - - Qt4 SDK - - gcc (mingw on Windows) + +Additional dependencies to build from sources: +- Qt4 SDK +- gcc (mingw on Windows) The program uses current directory to store temporary files. So it should be called from its directory. diff --git a/window.cpp b/window.cpp index d2745d7..123edab 100644 --- a/window.cpp +++ b/window.cpp @@ -30,7 +30,7 @@ Window::Window() { - // ** We do not use first element. + // ** We do not use the first element. m_helpLabels << 0; m_helpSwap << 0; @@ -45,14 +45,9 @@ Window::Window() m_layout->addWidget( createHelpLabel( - "Введите систему HELP", + "Enter system of equations HELP", // %% Reformat - "Для ввода системы можно использовать переменные (x, y), константы " - "(e, pi и любые числа; десятичная часть отделяется точкой), функции " - "(sin, cos, sqrt (корень квадратный), tan (тангенс), atan или arctg (арктангенс), " - "asin (арксинус), acos (арккосинус), abs (модуль), ln или log (логарифм)), операции (+, -, *, " - "/, ^ (возведение в степень)), Круглые скобки для группирования. Вокруг " - "аргумента функции надо обязательно ставить скобки.")); + "To enter a system of equations, you may use variables (x, y), constants (e, pi and any numbers; decimal part is delimited by dot '.'), functions (sin, cos, sqrt (square root), tan, atan or arctg, asin, acos, abs, ln or log (natural logarithm)), operators (+, -, *, /, ^ (power)), parenthesis for grouping. Parenthesis are always needed for arguments for functions.")); // setStyleSheet("QComboBox QAbstractItemView { background-color: yellow; decoration-position: right; }"); // setStyleSheet("QComboBox QAbstractItemView::item { background-color: light green; }"); @@ -146,9 +141,9 @@ Window::Window() m_layout->addWidget( createHelpLabel( - "Точки для поиска решения методом Ньютона HELP", + "Points to search singular points by Newton method HELP", // %% Reformat - "Из этих точек будет начат поиск решений методом Ньютона. Формат описания такой же, как у дополнительных точек исследования." + "Search of the singular points will be started from these points. The format to enter the points is the same as for additional points to research." )); m_mnewton = new QLineEdit(this); m_layout->addWidget(m_mnewton); @@ -157,16 +152,16 @@ Window::Window() m_layout->addWidget( createHelpLabel( - "Дополнительные точки исследования HELP", + "Additional points to research HELP", // %% Reformat - "Это поле позволяет вручную ввести список точек для исследования. Они будут добавлены к списку особых точек, найденных программой, и будут исследованы как особые точки, даже если не являются таковыми. Это поле стоит использовать, если программа не может найти особые точки, находит не все особые точки и для управления границами построения общего фазового портрета. Изменение границ общего фазового портрета возможно, потому что все исследуемые точки (плюс окрестность радиуса 1) отображаются на общем фазовом портрете. Каждая точка вводится формате [x=значение, y=значение]. Список разделён запятыми. Например, чтобы получить фазовый портрет ширины и высоты 10 с центром в начале координат (при условии отсутствия точек за пределами этого квадрата), надо ввести: [x=-5, y=-5], [x=5, y=5] или [x=5, y=-5], [x=-5, y=5]." + "This field allows you to enter a list of points to research manually. The points will be added to the list of singular points found by the software. The points will be researched as singular point even if they are not singular. It is rational to use this field if the software cannot find singular points or cannot find all points or if you would like to change boundaries of phase plane to be drawn. Boundaries are modifiable this way because each point (with the locality of size 1) is shown on the phase plane. Each point should be entered using [x=value, y=value] format. The list of points should be separated by commas. For instance, [x=-4, y=-4], [x=4, y=4] or [x=4, y=-4], [x=-4, y=4] should be entered to get a phase plane with width=10 and height=10 with the center in (0, 0)." )); m_specials = new QLineEdit(this); m_layout->addWidget(m_specials); connect(m_specials, SIGNAL(returnPressed()), this, SLOT(start())); - m_startButton = new QPushButton(QString::fromUtf8("Исследовать и построить!"), this); + m_startButton = new QPushButton(QString::fromUtf8("Research and plot!"), this); m_layout->addWidget(m_startButton); connect(m_startButton, SIGNAL(clicked()), this, SLOT(start())); @@ -204,8 +199,8 @@ QLabel *Window::createHelpLabel(const char *normalText, const char *helpText) QString h = n + "
" + QString::fromUtf8(helpText) + "
"; QString p = "HELP"; int k = m_helpLabels.count(); - QString sn = QString::fromUtf8("(► кликните сюда для получения справки)").arg(k); - QString sh = QString::fromUtf8("(▼ кликните сюда для скрытия справки)").arg(k); + QString sn = QString::fromUtf8("(► click here to get the help)").arg(k); + QString sh = QString::fromUtf8("(▼ click here to hide the help)").arg(k); n = n.replace(p, sn); h = h.replace(p, sh); QLabel *l = new QLabel(n, this); @@ -363,8 +358,9 @@ void Window::start() // Показываем систему в виде картинки из теха. layout->addWidget( createHelpLabel( - "Исследуемая система HELP", - "Здесь Вы видите запись системы в виде, близком к рукописному. Проверьте его.")); + "The system to be research HELP", + "There is a view of the system close to handwritten. Check it please." + )); QString texX = output[4]; QString texY = output[5]; texX.replace("$$", ""); @@ -384,16 +380,9 @@ void Window::start() // устойчивость. layout->addWidget( createHelpLabel( - "Особые точки HELP", - "В таблице ниже приведены особые точки системы и фазовые портреты их " - "окрестностей (квадрате размера со стороной 2 и центром в исследуемой " - "особой точке). Фиолетовым цветом на данных фазовых портретах показаны " - "точки, вектор скорости которых направлен к особой точке, зелёным - от " - "особой точки. При наведении мыши на фазовый портрет на нём строится " - "дополнительная фазовая кривая, раскрашенная в два цвета: красная часть " - "показывает положительное направление движения точки по фазовой кривой из " - "положения указателя (увеличение времени), синяя - отрицательное " - "направление (уменьшение времени).")); + "Singular points HELP", + // %% Reformat + "In table below, singular points of the system and local phase planes (2x2 square with the center in the singular point) are listed. Violet color indicates points where vector of the speed tends to the singular point, green color indicated points where vector of the speed tends from the singular point. When you point the mouse onto the phase plane a temporary additional phase line is drawn. It has two colors: red shows positive direction of line (time goes forward), blue is for negative direction (times goes backward).")); QGridLayout *grid = new QGridLayout(this); #define GRID_ADD_WIDGET(widget, row, col) grid->addWidget(wrapWithBorder(widget), (row), (col)) grid->setSpacing(0); @@ -406,12 +395,12 @@ void Window::start() l->setAlignment(Qt::AlignHCenter); \ GRID_ADD_WIDGET(l, 0, pos++); \ } while (0) - AL("№"); - AL("Координаты"); - AL("Корни