Esta rotina abaixo estou usando para rotacionar textos que estão de "cabeça para baixo", ela faz o seguinte: ao receber um determinado ângulo em radianos, testa se ele faria um TEXT ficar de cabeça para baixo... mesmo se você tiver um UCS diferente do WCS, se estiver, soma 180º a ele, vejam:
(defun rot-of-ucs (rot / rucs)
(setq rucs (angle '(0 0) ;ucs
(trans
(polar (trans '(0 0) 1 0) rot 1) ;vetor wcs
0 1 ;WCS -> UCS
)))
(if (and (>= rucs (/ pi 2)) (< rucs (* 3 (/ pi 2))))
(+ rot pi)
rot))
(defun rot-of-ucs (rot / rucs)
(setq rucs (angle '(0 0) ;ucs
(trans
(polar (trans '(0 0) 1 0) rot 1) ;vetor wcs
0 1 ;WCS -> UCS
)))
(if (and (>= rucs (/ pi 2)) (< rucs (* 3 (/ pi 2))))
(+ rot pi)
rot))
Nenhum comentário:
Postar um comentário