Вывод изображения фигур - 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))))) —
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д