elpanov.com » Элементарная геометрия » Треугольники и полилинии

Новая версия сайта, доступна здесь.




Треугольники и полилинии

Площадь равнобедренного треугольника

Проверка направления обхода вершин в треугольнике на плоскости (версия 1)

Проверка направления обхода вершин в треугольнике на плоскости (версия 2)

Площадь треугольника (версия 1)

Площадь треугольника (версия 2)

Площадь треугольника (версия 3) используетcя формулa Герона

Площадь многоугольника




Площадь равнобедренного треугольника



eea-s_triangle_Isosceles.jpg (54 КБ)



;;	eea-s_triangle_Isosceles.lsp

(defun eea-s_triangle_Isosceles (r a)
                                ;|
*****************************************************************************************

by ElpanovEvgeniy

Библиотечная функция, 

Площадь равнобедренного треугольника

r - длинна боковой стороны
а - угол между равными сторонами

Дата создания      2000 - 2005 годы
*****************************************************************************************

Library function.

The area of an isosceles triangle.

r - it is length a lateral face
a - angle between the equal parties

Date of creation   2000 - 2005 years.
*****************************************************************************************

(setq p1 (getpoint "\n Select centre arc")
          p2 (getpoint p1 "\n Select start point")
          p3 (getpoint p1 "\n Select end point")
          r  (distance p1 p2)
          a  (- (angle p1 p3) (angle p1 p2))
    ) ;_  setq
    
(eea-s_triangle_Isosceles r a)

*****************************************************************************************
|;
 (* r r (sin a) 0.5)
) ;_  defun

Наверх




Проверка направления обхода вершин в треугольнике на плоскости

(версия 1)



eea-direction_triangle.jpg (51,3 КБ)



(defun eea-direction_triangle-1 (p1 p2 p3)
                              ;|
*****************************************************************************************

by ElpanovEvgeniy

Библиотечная функция, 

Проверка направления обхода вершин в треугольнике на плоскости (версия 1)
против часовой стрелки = Т
Вырожденные треугольники, считаются против часовой!!!

p1 p2 p3 - Вершины треугольника

Дата создания      2000 - 2005 годы
*****************************************************************************************

Library function.

Check of a direction of detour of point in a triangle on a plane
Counter-clockwise = Т
Triangles of zero area, are considered against the Counter-clockwise!!!

p1 p2 p3 - triangle point.

Date of creation   2000 - 2005 years.
*****************************************************************************************

(setq p1 (getpoint "\n The first point triangle")
      p2 (getpoint p1 "\n The second point triangle")
      p3 (getpoint p1 "\n The third point triangle")
) ;_  setq
    
(eea-direction_triangle-1 p1 p2 p3)

*****************************************************************************************
|;
 (> (* (- (car p1) (car p2)) (- (cadr p2) (cadr p3)))
    (* (- (cadr p1) (cadr p2)) (- (car p2) (car p3)))
 ) ;_  >
) ;_  defun

Наверх




Проверка направления обхода вершин в треугольнике на плоскости

(версия 2)



eea-direction_triangle.jpg (51,3 КБ)



(defun eea-direction_triangle-2 (p1 p2 p3)
                              ;|
*****************************************************************************************

by ElpanovEvgeniy

Библиотечная функция, 

Проверка направления обхода вершин в треугольнике на плоскости (версия 2)
против часовой стрелки = Т
Вырожденные треугольники, считаются против часовой!!!

p1 p2 p3 - Вершины треугольника

Дата создания      2000 - 2005 годы
*****************************************************************************************

Library function.

Check of a direction of detour of point in a triangle on a plane (version 2)
Counter-clockwise = Т
Triangles of zero area, are considered against the Counter-clockwise!!!

p1 p2 p3 - triangle point.

Date of creation   2000 - 2005 years.
*****************************************************************************************

(setq p1 (getpoint "\n The first point triangle")
      p2 (getpoint "\n The second point triangle")
      p3 (getpoint "\n The third point triangle")
) ;_  setq
    
(eea-direction_triangle-2 p1 p2 p3)

*****************************************************************************************
|;
 (< (sin (- (angle p1 p2) (angle p1 p3))) 1e-14)
) ;_  defun

Наверх




Площадь треугольника (версия 1)



eea-direction_triangle.jpg (51,3 КБ)



(defun eea-s_triangle-1 (p1 p2 p3)
                               ;|
*****************************************************************************************

by ElpanovEvgeniy

Библиотечная функция, 

Площадь треугольника (версия 1)
против часовой стрелки - положительная

p1 p2 p3 - Вершины треугольника

Дата создания      2000 - 2005 годы
*****************************************************************************************

Library function.

Area triangle (version 1)
Counter-clockwise - positive 

p1 p2 p3 - triangle point.

Date of creation   2000 - 2005 years.
*****************************************************************************************

(setq p1 (getpoint "\n The first point triangle")
      p2 (getpoint "\n The second point triangle")
      p3 (getpoint "\n The third point triangle")
) ;_  setq
    
(eea-s_triangle-1 p1 p2 p3)

*****************************************************************************************
|;
 (/ (- (* (- (car p1) (car p2)) (- (cadr p2) (cadr p3)))
       (* (- (cadr p1) (cadr p2)) (- (car p2) (car p3)))
    ) ;_  -
    2.
 ) ;_  /
) ;_  defun

Наверх




Площадь треугольника (версия 2)



eea-direction_triangle.jpg (51,3 КБ)



(defun eea-s_triangle-2 (p1 p2 p3)
                               ;|
*****************************************************************************************

by ElpanovEvgeniy

Библиотечная функция, 

Площадь треугольника (версия 2)
против часовой стрелки - положительная

p1 p2 p3 - Вершины треугольника

Дата создания      2000 - 2005 годы
*****************************************************************************************

Library function.

Area triangle (version 2)
Counter-clockwise - positive 

p1 p2 p3 - triangle point.

Date of creation   2000 - 2005 years.
*****************************************************************************************

(setq p1 (getpoint "\n The first point triangle")
      p2 (getpoint "\n The second point triangle")
      p3 (getpoint "\n The third point triangle")
) ;_  setq
    
(eea-s_triangle-2 p1 p2 p3)

*****************************************************************************************
|;
 (/ (+ (* (car p1) (- (cadr p2) (cadr p3)))
       (* (car p2) (- (cadr p3) (cadr p1)))
       (* (car p3) (- (cadr p1) (cadr p2)))
    ) ;_  +
    2.
 ) ;_  /
) ;_  defun

Наверх




Площадь треугольника (версия 3) используетcя формулa Герона



eea-direction_triangle.jpg (51,3 КБ)



(defun eea-s_triangle-3_geron (p1 p2 p3 / l p)
                               ;|
*****************************************************************************************

by ElpanovEvgeniy

Библиотечная функция, 

Площадь треугольника (версия 3)
Использует формулу Герона
Удобно использовать с трехмерными координатами

p1 p2 p3 - Вершины треугольника

Дата создания      2000 - 2005 годы
*****************************************************************************************

Library function.

Area triangle (version 3)
Uses the formula of Heron
It is convenient to use with three-dimensional co-ordinates

p1 p2 p3 - triangle point.

Date of creation   2000 - 2005 years.
*****************************************************************************************

(setq p1 (getpoint "\n The first point triangle")
      p2 (getpoint "\n The second point triangle")
      p3 (getpoint "\n The third point triangle")
) ;_  setq
    
(eea-s_triangle-3_geron p1 p2 p3)

*****************************************************************************************
|;
 (setq l (cons 0 (mapcar (function distance) (list p1 p2 p3) (list p2 p3 p1)))
       p (/ (apply (function +) l) 2.)
 ) ;_  setq
 (sqrt (abs (apply (function *) (mapcar (function -) l (list p p p p)))))
) ;_  defun

Наверх




Площадь многоугольника



eea-area-polygon.jpg (51,3 КБ)



(defun eea-area-polygon (l)
                        ;|
*****************************************************************************************

by ElpanovEvgeniy

Библиотечная функция, 

Площадь многоугольника
против часовой стрелки - положительная

используется формула:
(+ (* (+ x1 x2)(- y1 y2) 0.5)(* (+ x2 x3)(- y2 y3) 0.5) .... )

l  - Список вершин многоугольника

Дата создания      2000 - 2005 годы
*****************************************************************************************

Library function.

Area triangle (version 3)
Uses the formula of Heron
It is convenient to use with three-dimensional co-ordinates

l - List polyline point.

Date of creation   2000 - 2005 years.
*****************************************************************************************

(setq l (mapcar (function cdr)
                (vl-remove-if-not
                   (function (lambda (x) (= (car x) 10)))
                   (entget (car (entsel "\n Select lwpolyline  ")))
                ) ;_  vl-remove-if-not
        ) ;_  mapcar
) ;_  setq
    
(eea-area-polygon l)

*****************************************************************************************
|;
 (/ (apply (function +)
           (mapcar
             (function
               (lambda (a b)
                 (* (+ (car a) (car b)) (- (cadr a) (cadr b)))
               )
             )
             (cons (last l) l)
             l
           ) ;_  mapcar
    ) ;_  apply
    -2.
 ) ;_  -
) ;_  defun

Наверх