Вывод изображения фигур - Lisp
Формулировка задачи:
Здравствуйте,помогите с заданием)
Задание:
Написать функцию, которая спрашивает у пользователя какую фигуру нужно нарисовать: 1- эллипс, 2 - круг, 3 - дугу и какого цвета и выводит на экран соответствующую фигуруРешение задачи: «Вывод изображения фигур»
textual
Листинг программы
(defun task () (let* ((tf (str2fix (ask "Что рисуем? (1-эллипс, 2-круг, 3-дугу)"))) (cl (str2fix (ask "Цвет? (1-красный, 2-синий, 3-зеленый)"))) (col (cond ((= cl 1) _RED) ((= cl 2) _BLUE) (t _GREEN))) (w (gensym 'w))) (grwCreate w 200 200 "Фигуры" _WHITE) (grwScale w -100 100 -100 100) (grwShow w) (cond ((= tf 1) (grwEllipse w 0 0 60 col 0.7)) ((= tf 2) (grwCircle w 0 0 60 col)) (t (grwArc w 0 0 60 0 (* 0.5 _pi) col)))))
Объяснение кода листинга программы
В коде определен функции task
, которая запрашивает у пользователя информацию о фигуре и цвете, а затем создает окно с фигурой указанного типа и цвета:
(defun task ()
— определение функцииtask
.(let* ((tf (str2fix (ask
Что рисуем? (1-эллипс, 2-круг, 3-дугу)`))) — запрос информации о фигуре.(cl (str2fix (ask
Цвет? (1-красный, 2-синий, 3-зеленый)`))) — запрос информации о цвете.(col (cond ((= cl 1) _RED) — определение цвета фигуры в зависимости от значения переменной
cl`.( ((= cl 2) _BLUE) —
( (t _GREEN))) —
- `(w (gensym 'w))) — создание уникального идентификатора для окна фигуры.
(grwCreate w 200 200
Фигуры` _WHITE) — создание окна с указанными размерами и названием.- `(grwScale w -100 100 -100 100) — изменение размеров окна.
- `(grwShow w) — отображение окна.
(cond ((= tf 1) (grwEllipse w 0 0 60 col 0.7)) — проверка значения переменной
tf` и отображение соответствующей фигуры.( ((= tf 2) (grwCircle w 0 0 60 col)) —
( (t (grwArc w 0 0 60 0 (* 0.5 _pi) col))))) —
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д