> 1 <

Автор Сообщение

d1mqa

Members


Статус

1 сообщений

Где: Russia
Род занятий:
Возраст:

#7353   2014-04-27 13:56 GMT+3 часа(ов)      
Здравствуйте!
Программа для рисования буквы "Ф". Не могу понять, как перевернуть нижнюю четверть окружности.

[f](defun dtr(a)
(* pi(/ a 180.))
)
(defun c:test()
(princ "Укажите точку привязки:")
(setq p1 (getpoint))
(setq h (getdist "\Высота буквы h:" p1))
(setq a (getangle "\Угол поворота a:" p1))
(setq tt (/ h 6))
(setq ws (/ h 100))
(setq wl (/ h 10))
(setq ww (/ h 15))
(setq wm (* wl 1.5))
(setq p2 (polar p1 (+ a (dtr 0.)) tt))
(setq p3 (polar p2 (+ a (dtr 90.)) (* tt 0.5))) ; нижняя левая часть
(setq tc (polar p1 (+ a (dtr 90.)) (* tt 1.5)))
(setq p5 (polar p2 (+ a (dtr 90.)) h)) ; начальная точка нижней левой части
(setq p4 (polar p5 (+ a (dtr -90.)) (* tt 0.4))) ; начальная точка верхней левой части
(setq p6 (polar p1 (+ a (dtr 90.)) h)) ; конечная точка верхней левой части
(setq tc1 (polar p6 (+ a (dtr -90.)) (* tt 1.5)))
(setq p7 (polar p2 (+ a (dtr 0.)) tt)) ; нижняя правая часть
(setq tc2 (polar p7 (+ a (dtr 90.)) (* tt 1.2)))
(setq p8 (polar p7 (+ a (dtr 90.)) h)) ; верхняя правая часть
(setq tc3 (polar p8 (+ a (dtr -90.)) (* tt 1.5)))

(setq p9 (polar p5 (+ a (dtr -90.)) (* tt 0.9))) ;правый прямоугольник
(setq p10 (polar p9 (+ a (dtr -90.)) (* tt 1.6)))
(setq p11 (polar p10 (+ a (dtr 0.)) (* tt 2.5)))
(setq p27 (polar p11 (+ a (dtr 180.)) (* tt 0.435)))
(setq p12 (polar p9 (+ a (dtr 0.)) tt))

(setq p21 (polar p6 (+ a (dtr -90.)) (* tt 0.9))) ;левый прямоугольник
(setq p22 (polar p21 (+ a (dtr 90.)) (* tt 1.6)))
(setq p23 (polar p22 (+ a (dtr -90.)) (* tt 3.25)))
(setq p24 (polar p21 (+ a (dtr 0.)) tt))

(setq tc4 (polar p12 (+ a (dtr -90.)) (* tt 1.5))) ; соединение правой верхней четверти окружности с прямоугольником
(setq p17 (polar p10 (+ a (dtr -90.)) (* tt 1.6))) ; соединение нижнего и центрального прямоугольника
(setq p18 (polar p17 (+ a (dtr 0.)) tt)) ; конец нижнего прямоугольника
(setq tc5 (polar p18 (+ a (dtr 90.)) (* tt 1.5))) ; соединение частей окруужности

(setq tc6 (polar p23 (+ a (dtr 0.)) (* tt 0.1))); соединение левой верхней четверти окружности с прямоугольником
(setq p25 (polar p6 (+ a (dtr -90.)) (* tt 4.1))) ; соединение нижнего и центрального прямоугольника
(setq p26 (polar p25 (+ a (dtr 0.)) tt)) ; конец нижнего прямоугольника
(setq tc7 (polar p23 (+ a (dtr -180.)) (* tt 0.1))); соединение частей окруужности

(command "_.OSNAP" "_NONE")
(command "_.PLINE" p2 "_W" wm wm p5 "") ;отрисовка центрального прямоугольника
(command "_.PLINE" p1 "_W" ws wl "_A" "_C" tc p3 "") ; отрисовка нижней левой части центральной линии
(command "_.PLINE" p4 "_W" wl ws "_A" "_C" tc1 p6 "") ; отрисовка верхней левой части центральной линии
(command "_.PLINE" p3 "_W" wl ws "_A" "_C" tc2 p7 "") ; отрисовка нижней правой части центральной линии
(command "_.PLINE" p8 "_W" ws wl "_A" "_C" tc3 p4 "") ; отрисовка верхней правой части центральной линии
(command "_.PLINE" p9 "_W" ww ww p12 "") ;отрисовка правого прямоугольника
(command "_.PLINE" p21 "_W" ww ww p24 "") ;отрисовка левого прямоугольника

(command "_.PLINE" p11 "_W" wm ww "_A" "_C" tc4 p12 "") ;отрисовка правой верхней четверти окружности
(command "_.PLINE" p17 "_W" ww ww p18 "") ;отрисовка правого нижнего прямоугольника
(command "_.PLINE" p11 "_W" ww ww p27 "")
(command "_.PLINE" p18 "_W" ww wm "_A" "_C" tc5 p11 "") ;отрисовка правой нижней четверти окружности

(command "_.PLINE" p21 "_W" ww wm "_A" "_C" tc6 p23 "");отрисовка левой верхней четверти окружности
(command "_.PLINE" p25 "_W" ww ww p26 "") ;отрисовка левого нижнего прямоугольника
(command "_.PLINE" p25 "_W" ww wm "_A" "_C" tc7 p23 "") ;отрисовка левой нижней четверти окружности

(princ)
)[/f]

Вот что получается:
> 1 <


Онлайн :

0 пользователь(ей), 8 гость(ей) :




Реклама на сайте: