Графика: функция рисования равностороннего треугольника - Lisp
Формулировка задачи:
Еще раз добрый вечер. HomeLisp-е
написать функцию, запрашивающую у пользователя сторону треугольника и отрисовывающую равносторонний треугольник с заданной длиной стороны и левым нижним углом в точке (5,0)
Решение задачи: «Графика: функция рисования равностороннего треугольника»
textual
Листинг программы
(defun triangle nil (let ((d 0)) (loop (try (progn (setq d (str2flo (ask "Задайте длину стороны"))) (when (<= d 1E-15) (raiseerror "")) (return t)) except (say "Вы ошиблись!"))) (grwCreate 'w 200 200 "Рисуем треугольник" _WHITE) (grwScale 'w -50 50 -50 50) (grwline 'w 0 -50 0 50 _NAVY) (grwline 'w -50 0 50 0 _NAVY) (grwSetParm 'w 3 1 _RED _WHITE) (grwShow 'w) (grwline 'w 5 0 (+ 5 d) 0 _RED) (grwline 'w 5 0 (+ 5 (* 0.5 d)) (* d (sin (/ _pi 3))) _RED) (grwline 'w (+ 5 d) 0 (+ 5 (* 0.5 d)) (* d (sin (/ _pi 3))) _RED) (loop (when (= 27 (grwInkey 'w 200)) (return t))) (grwHide 'w) (grwDestroy 'w) ))
Объяснение кода листинга программы
- Создание функции рисования треугольника (defun triangle nil).
- Ввод длины стороны треугольника с помощью функции ask и преобразование в число с плавающей точкой (str2flo).
- Проверка на корректность ввода длины стороны (когда (<= d 1E-15) (raiseerror ``))
- Создание окна для графического интерфейса (grwCreate).
- Изменение размеров окна (grwScale).
- Рисование первых двух сторон треугольника (grwline).
- Установка параметров для третьей стороны треугольника (grwSetParm).
- Отображение треугольника (grwShow).
- Рисование третьей стороны треугольника (grwline).
- Проверка на нажатие клавиши для выхода из программы (grwInkey).
- Отображение треугольника (grwShow).
- Скрытие треугольника (grwHide).
- Уничтожение окна (grwDestroy).
- Конец функции (return).
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д