>>  <<  Ркв  Ввд  JfC  LJ  Фрз  Слв  Изм  Рзг  !:  Помощь  Словарь

18. Геометрия

Применение J в декартовой геометрии можно проиллюстрировать, определяя функции для многоугольников в двух измерениях, вычисляющие вектора смещения между соседними вершинами, длины сторон, полу-периметр, и площадь (по формуле Герона).

Здесь мы так же дадим и более общее определение площади, не только вычисляющее ее значение со знаком (плюс, если вершины заданы в порядке против часовой стрелки), но и применимое к многогранникам в пространстве большего числа измерений (в этом случае имя area лучше заменить на volume). Это определение основано на вычислении детерминанта квадратной матрицы, полученной добавлением в конец таблицы вершин t строки со значениями %!#t . Тоесть:
   (length=: +/&.:*:) 5 12
13

   disp=: ] - 1&|."1
   sides=: length@disp
   semiper=: -:@(+/)@sides
   HERON=: %:@(*/)@(semiper - 0: , sides)
   area=: -/ . * @ (] , %@!@#)

   t=: 0 0 4 ,: 3 4 7
   (];(1&|."1);disp;sides;semiper;HERON;area) t
+-----+-----+-------+-----+---------+---------------+--+
|0 0 4|0 4 0| 0 _4 4|0 4 4|0.5 3.5 4|2.29129 0j0.5 0|_2|
|3 4 7|4 7 3|_1 _3 4|1 3 4|         |               |  |
+-----+-----+-------+-----+---------+---------------+--+
  
   tet1=:6 0 3 0,3 6 5 8,:7 4 0 5
   tet2=: 0,.=i.3 3
   tet1;(area tet1);tet2;(area tet2)
+-------+----+-------+---------+
|6 0 3 0|11.5|0 1 0 0|_0.166667|
|3 6 5 8|    |0 0 1 0|         |
|7 4 0 5|    |0 0 0 1|         |
+-------+----+-------+---------+



>>  <<  Ркв  Ввд  JfC  LJ  Фрз  Слв  Изм  Рзг  !:  Помощь  Словарь