написать программу-листинг в AutoLisp - Страница 2
| Правила | Регистрация | Пользователи | Сообщения за день |  Справка по форуму | Файлообменник |

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > написать программу-листинг в AutoLisp

написать программу-листинг в AutoLisp

Ответ
Поиск в этой теме
Непрочитано 05.04.2011, 19:06
написать программу-листинг в AutoLisp
students
 
Регистрация: 05.04.2011
Сообщений: 5

помогите написать программу.задание:
построение треугольника по 3-м точкам.
В центре построить окружность.
Предусмотреть ввод пользователем вершин и радиуса окружности
Просмотров: 9032
 
Непрочитано 21.05.2011, 14:40
#21
Елпанов Евгений

программист
 
Регистрация: 20.12.2005
Москва
Сообщений: 1,439
Отправить сообщение для Елпанов Евгений с помощью Skype™


Цитата:
Сообщение от gomer Посмотреть сообщение
можно по привязкам, но лучше математически вычислить центр и радиус... хм, координаты центра вписанной в треугольник окружности не нашел нигде
поищи у меня, на сайте выкладывал вычисление центра и радиуса окружности по трем точкам...
__________________
Чем гениальнее ваш план, тем меньше людей с ним будут согласны.
/Сунь Цзы/
Елпанов Евгений вне форума  
 
Непрочитано 21.05.2011, 15:36
#22
gomer

строю, ломаю
 
Регистрация: 03.04.2008
Украина
Сообщений: 5,515


Цитата:
Сообщение от Елпанов Евгений Посмотреть сообщение
поищи у меня, на сайте выкладывал вычисление центра и радиуса окружности по трем точкам...
не нашел... видать стал стар и слеп... может дадите ссылочку ?
gomer вне форума  
 
Непрочитано 21.05.2011, 15:41
#23
Елпанов Евгений

программист
 
Регистрация: 20.12.2005
Москва
Сообщений: 1,439
Отправить сообщение для Елпанов Евгений с помощью Skype™


Цитата:
Сообщение от gomer Посмотреть сообщение
может дадите ссылочку ?
Центр дуги, заданной тремя точками
Радиус дуги, заданной тремя точками
Центр и радиус дуги, заданной тремя точками
__________________
Чем гениальнее ваш план, тем меньше людей с ним будут согласны.
/Сунь Цзы/
Елпанов Евгений вне форума  
 
Непрочитано 21.05.2011, 16:09
#24
gomer

строю, ломаю
 
Регистрация: 03.04.2008
Украина
Сообщений: 5,515


это не совсем то, насколько я понимаю... для описанной окружности в самый раз, а для вписанной? ведь известны только точки треугольника, а вписанная окружность через них не проходит...
gomer вне форума  
 
Непрочитано 21.05.2011, 20:30
#25
Li6-D


 
Регистрация: 03.05.2009
Сообщений: 112


Судя по рисунку автора темы под термином "центром треугольника" подразумевается не центр вписанной или описанной окружности, а центр тяжести треугольника (центроид).
В этом случае его проще всего найти с помощью выражения:
Код:
[Выделить все]
(setq pm (mapcar '(lambda (a b c) (/ (+ a b c) 3.)) p1 p2 p3))
А выражение для центра вписанной более интересно и у Елпанова Евгения его нет. Можно объявить конкурс на самый короткий лисп (известны вершины треугольника p1, p2, p3).
Li6-D вне форума  
 
Непрочитано 22.05.2011, 10:01
#26
E-degtyarev

Помогаю, кому делать нечего.
 
Регистрация: 27.03.2009
Русская деревня
Сообщений: 394


Цитата:
Сообщение от gomer Посмотреть сообщение
можно по привязкам, но лучше математически вычислить центр и радиус... хм, координаты центра вписанной в треугольник окружности не нашел нигде
Из школьного курса геометрии известно, что центр вписанной в треугольник окружности лежит на пересечении биссектрис треугольника.
Хотя автора темы это, кажется, уже не интересует. Зачет он сдал.
E-degtyarev вне форума  
 
Непрочитано 22.05.2011, 12:19
#27
Li6-D


 
Регистрация: 03.05.2009
Сообщений: 112


Цитата:
Сообщение от E-degtyarev Посмотреть сообщение
Из школьного курса геометрии известно, что центр вписанной в треугольник окружности лежит на пересечении биссектрис треугольника...
Из всех школьных теорем надо выбирать ту, которая легче программируется.
Код:
[Выделить все]
(defun C:test ( / cm p1 p2 p3 pl)
  ;;Нахождение центра вписанной окружности, задаваемой 3-мя точками
  (defun cm (pN mN / m+)
    (setq m+ (float (apply '+ mN)))
    (mapcar '(lambda (x) (/ (apply '+ (mapcar '* x mN)) m+)) (apply 'mapcar (cons 'list PN)))
  )
  (and
    (setq p1 (getpoint "\n1-я точка: "))
    (setq p2 (getpoint p1 "\n2-я точка: "))
    (setq p3 (getpoint p1 "\n3-я точка: "))
    (setq pl (cm (list p1 p2 p3) (mapcar 'distance (list p2 p3 p1) (list p3 p1 p2))))
    (command "_.PLINE" "_non" p1 "_non" p2 "_non" p3 "_close" "_.CIRCLE" "_non" pl "_per" pause)
  )
  (princ)
)
Кто скажет, что за теорема использована в этом коде ?

Последний раз редактировалось Li6-D, 23.05.2011 в 20:57.
Li6-D вне форума  
 
Непрочитано 22.05.2011, 12:38
#28
gomer

строю, ломаю
 
Регистрация: 03.04.2008
Украина
Сообщений: 5,515


Цитата:
Сообщение от Li6-D Посмотреть сообщение
Можно объявить конкурс на самый короткий лисп (известны вершины треугольника p1, p2, p3).
в общем не долго думая...
Код:
[Выделить все]
 (defun cm (p1 p2 p3 / a d1)
  (inters
    p1
    (polar p1 ((setq ma (lambda (x y z) (* 0.5 (+ (angle x y) (angle x z))))) p1 p2 p3) 1.0)
    p2
    (polar p2 (ma p2 p3 p1) 1.0)
    nil
  )
)

Последний раз редактировалось gomer, 22.05.2011 в 13:25.
gomer вне форума  
 
Непрочитано 22.05.2011, 12:44
#29
Елпанов Евгений

программист
 
Регистрация: 20.12.2005
Москва
Сообщений: 1,439
Отправить сообщение для Елпанов Евгений с помощью Skype™


мои варианты кода можно посмотреть на болоте...
__________________
Чем гениальнее ваш план, тем меньше людей с ним будут согласны.
/Сунь Цзы/

Последний раз редактировалось Елпанов Евгений, 22.05.2011 в 13:18.
Елпанов Евгений вне форума  
 
Непрочитано 22.05.2011, 13:16
#30
gomer

строю, ломаю
 
Регистрация: 03.04.2008
Украина
Сообщений: 5,515


Цитата:
Сообщение от Елпанов Евгений Посмотреть сообщение
что делает эта стрка?
это была не правильная строка
код поправил
хм, болот рулит как всегда..

Последний раз редактировалось gomer, 22.05.2011 в 13:25.
gomer вне форума  
 
Непрочитано 23.05.2011, 23:38
#31
Li6-D


 
Регистрация: 03.05.2009
Сообщений: 112


Цитата:
Сообщение от Елпанов Евгений Посмотреть сообщение
Да, на болоте все есть, включая расчет центра тяжести (барицентра) . А это был секрет моего кода (барицентр считает функция cm).
Немного геометрии: Если поместить в вершины треугольника точечные грузы, вес которых равен длине противоположной стороны,
то центр тяжести (барицентр) этой системы грузов будет совпадать с центром вписанной в треугольник окружности.

Теорему можно распространить и на пространство (вписанная в пирамиду сфера), при этом вес груза, помещаемого в вершину пирамиды, следует принять равным площади противолежащей вершине грани.
Li6-D вне форума  
 
Непрочитано 23.05.2011, 23:47
#32
Елпанов Евгений

программист
 
Регистрация: 20.12.2005
Москва
Сообщений: 1,439
Отправить сообщение для Елпанов Евгений с помощью Skype™


Цитата:
Сообщение от Li6-D Посмотреть сообщение
Да, на болоте все есть, включая расчет центра тяжести (барицентра)
к вопросу о центре тяжести, можно так же глянуть коды у меня на сайте...
Если коротко:
Центроид (центр масс) области, внутри полилинии, имеющей дуговые сегменты.
Центр массы, расположенной вдоль контура полилинии, имеющей дуговые сегменты.
Средняя точка - центр массы, расположенной в вершинах полилинии равными частями
Центроид (центр масс) области, внутри многоугольника
Центр массы, расположенной вдоль контура полилинии, без дуговых сегментов.
Центр массы, средняя точка, пересечение медиан треугольника
Центроид (центр масс) области, внутри дугового сегмента полилинии.
Центроид (центр масс) области, расположенной вдоль контура дугового сегмента полилинии.
__________________
Чем гениальнее ваш план, тем меньше людей с ним будут согласны.
/Сунь Цзы/
Елпанов Евгений вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > написать программу-листинг в AutoLisp



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
помогите написать программу расчета температуры MathCad Olga12345 Другие CAD системы 4 22.02.2011 15:25
Требуется помощь, дабы написать на лиспе программу проверяющую топологию WeMaN LISP 23 26.01.2011 01:26
Помогите написать программу на AUTOLISP'e Сергей123 LISP 28 06.09.2007 12:20
Как написать программу на С++ Builder 6 под AutoCAD 2002 dimaxxx Программирование 4 19.10.2006 14:38
Как из Delphi запустить программу на AutoLISP Valery LISP 1 23.09.2005 20:51