Графика: функция рисования равностороннего треугольника - 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)
))

Объяснение кода листинга программы

  1. Создание функции рисования треугольника (defun triangle nil).
  2. Ввод длины стороны треугольника с помощью функции ask и преобразование в число с плавающей точкой (str2flo).
  3. Проверка на корректность ввода длины стороны (когда (<= d 1E-15) (raiseerror ``))
  4. Создание окна для графического интерфейса (grwCreate).
  5. Изменение размеров окна (grwScale).
  6. Рисование первых двух сторон треугольника (grwline).
  7. Установка параметров для третьей стороны треугольника (grwSetParm).
  8. Отображение треугольника (grwShow).
  9. Рисование третьей стороны треугольника (grwline).
  10. Проверка на нажатие клавиши для выхода из программы (grwInkey).
  11. Отображение треугольника (grwShow).
  12. Скрытие треугольника (grwHide).
  13. Уничтожение окна (grwDestroy).
  14. Конец функции (return).

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

13   голосов , оценка 4.154 из 5