|
1 |
| -namespace DijkstraAlgorithm |
| 1 | +using System; |
| 2 | + |
| 3 | +namespace DijkstraAlgorithm |
2 | 4 | {
|
3 | 5 | public static class Surface
|
4 | 6 | {
|
5 |
| - public static double Plane(double x, double y) |
| 7 | + public static double Plane(double x, double y) => 0.0; |
| 8 | + |
| 9 | + /// <summary> |
| 10 | + /// Возвращает значение функции Гаусса (двумерный Гауссиан). |
| 11 | + /// Описание параметров (раздел "Многомерные обобщения"): https://ru.wikipedia.org/wiki/%D0%93%D0%B0%D1%83%D1%81%D1%81%D0%BE%D0%B2%D0%B0_%D1%84%D1%83%D0%BD%D0%BA%D1%86%D0%B8%D1%8F |
| 12 | + /// </summary> |
| 13 | + /// <param name="x">абсцисса точки, в которой необходимо вычислить двумерный Гауссиан</param> |
| 14 | + /// <param name="y">ордината точки, в которой необходимо вычислить двумерный Гауссиан</param> |
| 15 | + /// <param name="A">высота колокола</param> |
| 16 | + /// <param name="sigmaX">размах колокола по оси Ox</param> |
| 17 | + /// <param name="sigmaY">размах колокола по оси Oy</param> |
| 18 | + /// <param name="x0">сдвиг пика по оси Ox</param> |
| 19 | + /// <param name="y0">сдвиг пика по оси Oy</param> |
| 20 | + /// <returns></returns> |
| 21 | + public static double Gaussian(double x, double y, double A, double sigmaX, double sigmaY, double x0, double y0) |
| 22 | + { |
| 23 | + double xx = Math.Pow(x - x0, 2.0) / (2.0 * Math.Pow(sigmaX, 2.0)); |
| 24 | + double yy = Math.Pow(y - y0, 2.0) / (2.0 * Math.Pow(sigmaY, 2.0)); |
| 25 | + |
| 26 | + return A * Math.Exp(-(xx + yy)); |
| 27 | + } |
| 28 | + |
| 29 | + /// <summary> |
| 30 | + /// Возвращает значение функции Гаусса (двумерный Гауссиан). |
| 31 | + /// </summary> |
| 32 | + /// <param name="x">абсцисса точки, в которой необходимо вычислить двумерный Гауссиан</param> |
| 33 | + /// <param name="y">ордината точки, в которой необходимо вычислить двумерный Гауссиан</param> |
| 34 | + /// <param name="gaussianParameters">набор параметров</param> |
| 35 | + /// <returns></returns> |
| 36 | + public static double Gaussian(double x, double y, GaussianParameter gaussianParameters) |
6 | 37 | {
|
7 |
| - if (x == 0.0 && y == 1.0) |
8 |
| - return 1.0; |
| 38 | + double xx = Math.Pow(x - gaussianParameters.x0, 2.0) / (2.0 * Math.Pow(gaussianParameters.sigmaX, 2.0)); |
| 39 | + double yy = Math.Pow(y - gaussianParameters.y0, 2.0) / (2.0 * Math.Pow(gaussianParameters.sigmaY, 2.0)); |
9 | 40 |
|
10 |
| - return 0.0; |
| 41 | + return gaussianParameters.A * Math.Exp(-(xx + yy)); |
11 | 42 | }
|
12 | 43 | }
|
13 | 44 | }
|
0 commit comments