Skip to content
This repository has been archived by the owner on Oct 16, 2023. It is now read-only.

Commit

Permalink
Окончательный вариант для демонстрации
Browse files Browse the repository at this point in the history
  • Loading branch information
sedub01 committed May 30, 2023
1 parent b9eb9f2 commit 61e0313
Show file tree
Hide file tree
Showing 8 changed files with 28 additions and 12 deletions.
2 changes: 1 addition & 1 deletion src/main/java/root/MainApplication.java
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,8 @@

import java.io.IOException;

/** Точка входа в приложение для фреймворка JavaFX */
public class MainApplication extends Application {

@Override
public void start(Stage stage) throws IOException {
FXMLLoader loader = new FXMLLoader(getClass().getResource("main-view.fxml"));
Expand Down
4 changes: 1 addition & 3 deletions src/main/java/root/controllers/BilliardballController.java
Original file line number Diff line number Diff line change
Expand Up @@ -3,19 +3,17 @@
import javafx.animation.Interpolator;
import javafx.animation.TranslateTransition;
import javafx.fxml.FXML;
import javafx.geometry.Bounds;
import javafx.scene.control.Label;
import javafx.scene.control.Spinner;
import javafx.scene.control.TextField;
import javafx.scene.input.MouseEvent;
import javafx.scene.layout.Pane;
import javafx.scene.shape.Circle;
import javafx.scene.transform.Transform;
import root.gui.BilliardBallPane;
import root.utils.Logger;
import root.utils.Point;

//TODO переделать модель, значительно упростив ее
//afterInvest переделать модель, значительно упростив ее
//Демонстрация следующая: есть шар слева, он может удариться о шар справа
//Если шары не пересекаются, выводится предупреждение, иначе шар начинается двигаться
//После соударения рисуется отрезок, соединяющий центры шаров, и от этой линии считаются углы отклонения
Expand Down
4 changes: 2 additions & 2 deletions src/main/java/root/controllers/CannonballController.java
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@
import javafx.scene.transform.Transform;
import root.utils.Point;

/** Модель, анализирующая параболическое движение снаряда*/
/** Контроллер модели, анализирующей параболическое движение снаряда*/
public class CannonballController extends AbstractModelController {
@FXML private ImageView wheel;
@FXML private ImageView floor;
Expand Down Expand Up @@ -270,7 +270,7 @@ public void calculateTrajectory() {

final double angle = -mRotate.getAngle();
//Местонахождение точки начала траектории в пространстве сцены
//TODO попытаться убрать mTrackingPoint и засунуть в bounds саму пушку
//afterInvest попытаться убрать mTrackingPoint и засунуть в bounds саму пушку
//т.е. сначала найти границы пушки относительно ее Pane, затем
//по x взять max-смещение, по y взять height/2
//Для mPivotPoint можно взять коорд. точки крепления
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,9 @@
import root.utils.Logger;
import root.utils.Point;

/** Контроллер модели, позволяющей исследовать закономерность между расстоянием до
* линзы и размером отображающегося изображения
*/
public class RefractionThroughLensController extends AbstractModelController {
@FXML
private Pane anchorPane;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@
//А итоговое растяжение получается из суммы двух растяжений
//Ручное удлинение считается как разница между положением груза при перемещении
//и при расположении без перетягивания, деленная на количество пикселей на один метр
/** Модель, описывающая зависимость растяжения пружины от силы упругости */
/** Контроллер модели, описывающей зависимость растяжения пружины от силы упругости */
public class WeightWithSpringController extends AbstractModelController {
@FXML
private Pane topPane;
Expand Down
2 changes: 0 additions & 2 deletions src/main/java/root/gui/BilliardBallPane.java
Original file line number Diff line number Diff line change
Expand Up @@ -10,9 +10,7 @@
import javafx.scene.layout.Pane;
import javafx.scene.paint.Color;
import javafx.scene.shape.Circle;
import javafx.scene.shape.Line;
import javafx.scene.shape.Polygon;
import javafx.scene.transform.Affine;
import javafx.scene.transform.Rotate;
import javafx.scene.transform.Transform;
import root.utils.LineWithOdds;
Expand Down
1 change: 0 additions & 1 deletion src/main/java/root/utils/Global.java
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@

/**Хранилище глобальных функций*/
public class Global {

public static String getCSSThemeColor(double colorness, String key){
Color tColor = Constants.THEME_COLOR;
if (colorness < 0) {
Expand Down
22 changes: 20 additions & 2 deletions src/main/resources/root/mainschema.properties
Original file line number Diff line number Diff line change
Expand Up @@ -135,13 +135,31 @@ models.kCannonballModel = {\
# }
models.dWeightWithSpringModel = {\
modelName: Груз с пружиной\n\
modelDescription: Натяжение пружины\n\
modelDescription: <p>Модель демонстрирует зависимость растяжения пружины от веса подвешенного груза и приложенной силы. \
С ее помощью можно найти длину растянутой пружины и приложенную к ней силу. </p>\
В модели используется формула `F = mg = kx`, где `F` - сила упругости, `m` - масса груза, `g` - гравитационная \
постоянная, `k` - жесткость пружины, `x` - удлинение пружины. <br> \
Растяжение от груза задается через ввод настроек, ручное растяжение - при перетаскивании предмета. \
Итоговое растяжение получается из суммы двух растяжений. <br>\
Для использования данной модели следует изменить параметры модели в панели настроек и перемещать груз по вертикали \
с помощью зажатой мыши. За условную единицу принимается 0.05 метра.\
\n\
modelFilePath: weightWithSpringModel.fxml\n\
isGridNeeded: true\n\
}
models.opRefractionThroughLensModel = {\
modelName: Преломление через линзу\n\
modelDescription: Преломление через линзу\n\
modelDescription: <p>Модель демонстрирует искажение предмета через линзу. С ее помощью можно найти проекцию предмета \
через тонкую линзу. </p> \
В модели используется формула `D = 1/F`, где `D` - оптическая сила линзы, `F` - фокусное расстояние. <br>\
Изображение в тонкой собирающей линзе строится следующим образом: от предмета идет перпендикулярный линзе луч, \
затем от точки пересече-ния этого луча и линзы строится другой луч А, проходящий через фокусное расстояние линзы; \
после этого строится луч B, излучающийся от предмета и проходящий через оптический центр линзы. Остается найти \
точку пересечения лучей А и B – полученная точка является точкой изображения. <br>\
Если предмет расположен до фокуса, то изображение будет действительным и перевернутым, иначе оно будет мнимым и прямым. <br>\
Предмет можно перемещать вдоль оси Х с помощью перемещения зажатой мыши. При каждом изменении координаты \
предмета будет пересчитываться размер изображения. За условную единицу принимается 1 фокусное расстояние. \
\n\
modelFilePath: refractionThroughLensModel.fxml\n\
isGridNeeded: true\n\
}
Expand Down

0 comments on commit 61e0313

Please sign in to comment.