32 |
;; --------------- |
;; --------------- |
33 |
;; |
;; |
34 |
;; Artist is an Emacs lisp package that allows you to draw lines, |
;; Artist is an Emacs lisp package that allows you to draw lines, |
35 |
;; rectangles and ellipses by using your mouse and/or keyboard. The |
;; rectangles and ellipses by using your mouse and/or keyboard. The |
36 |
;; shapes are made up with the ascii characters |, -, / and \. |
;; shapes are made up with the ascii characters |, -, / and \. |
37 |
;; |
;; |
38 |
;; Features are: |
;; Features are: |
61 |
;; erase characters erase rectangles |
;; erase characters erase rectangles |
62 |
;; |
;; |
63 |
;; Straight lines are lines that go horizontally, vertically or |
;; Straight lines are lines that go horizontally, vertically or |
64 |
;; diagonally. Plain lines go in any direction. The operations in |
;; diagonally. Plain lines go in any direction. The operations in |
65 |
;; the right column are accessed by holding down the shift key while |
;; the right column are accessed by holding down the shift key while |
66 |
;; drawing. |
;; drawing. |
67 |
;; |
;; |
68 |
;; It is possible to vaporize (erase) entire lines and connected lines |
;; It is possible to vaporize (erase) entire lines and connected lines |
69 |
;; (rectangles for example) as long as the lines being vaporized are |
;; (rectangles for example) as long as the lines being vaporized are |
70 |
;; straight and connected at their endpoints. Vaporizing is inspired |
;; straight and connected at their endpoints. Vaporizing is inspired |
71 |
;; by the drawrect package by Jari Aalto <jari.aalto@poboxes.com>. |
;; by the drawrect package by Jari Aalto <jari.aalto@poboxes.com>. |
72 |
;; |
;; |
73 |
;; * Flood-filling: You can fill any area with a certain character by |
;; * Flood-filling: You can fill any area with a certain character by |
74 |
;; flood-filling. |
;; flood-filling. |
75 |
;; |
;; |
76 |
;; * Cut copy and paste: You can cut, copy and paste rectangular |
;; * Cut copy and paste: You can cut, copy and paste rectangular |
77 |
;; regions. Artist also interfaces with the rect package (this can be |
;; regions. Artist also interfaces with the rect package (this can be |
78 |
;; turned off if it causes you any trouble) so anything you cut in |
;; turned off if it causes you any trouble) so anything you cut in |
79 |
;; artist can be yanked with C-x r y and vice versa. |
;; artist can be yanked with C-x r y and vice versa. |
80 |
;; |
;; |
85 |
;; poly-line, you can set arrows on the line-ends by typing < or >. |
;; poly-line, you can set arrows on the line-ends by typing < or >. |
86 |
;; |
;; |
87 |
;; * Aspect-ratio: You can set the variable artist-aspect-ratio to |
;; * Aspect-ratio: You can set the variable artist-aspect-ratio to |
88 |
;; reflect the height-width ratio for the font you are using. Squares |
;; reflect the height-width ratio for the font you are using. Squares |
89 |
;; and circles are then drawn square/round. Note, that once your |
;; and circles are then drawn square/round. Note, that once your |
90 |
;; ascii-file is shown with font with a different height-width ratio, |
;; ascii-file is shown with font with a different height-width ratio, |
91 |
;; the squares won't be square and the circles won't be round. |
;; the squares won't be square and the circles won't be round. |
1685 |
(list 'if fn (cons 'funcall (cons fn args)))) |
(list 'if fn (cons 'funcall (cons fn args)))) |
1686 |
|
|
1687 |
(defvar artist-butlast-fn 'artist-butlast |
(defvar artist-butlast-fn 'artist-butlast |
1688 |
"The butlast function") |
"The butlast function.") |
1689 |
|
|
1690 |
(if (fboundp 'butlast) |
(if (fboundp 'butlast) |
1691 |
(setq artist-butlast-fn 'butlast) |
(setq artist-butlast-fn 'butlast) |
2526 |
when drawing a simple image. |
when drawing a simple image. |
2527 |
|
|
2528 |
Output is a straight line, which is a list on the form |
Output is a straight line, which is a list on the form |
2529 |
(END-POINT-1 END-POINT-2 SHAPE-INFO). |
\(END-POINT-1 END-POINT-2 SHAPE-INFO). |
2530 |
|
|
2531 |
END-POINT-1 and END-POINT-2 are two-element vectors on the form [X Y]. |
END-POINT-1 and END-POINT-2 are two-element vectors on the form [X Y]. |
2532 |
SHAPE-INFO is a vector [START-X START-Y LENGTH-OF-LINE DIRECTION |
SHAPE-INFO is a vector [START-X START-Y LENGTH-OF-LINE DIRECTION |
2581 |
"Draws a rectangle with corners at X1, Y1 and X2, Y2. |
"Draws a rectangle with corners at X1, Y1 and X2, Y2. |
2582 |
|
|
2583 |
Output is a rectangle, which is a list on the form |
Output is a rectangle, which is a list on the form |
2584 |
(END-POINT-1 END-POINT-2 SHAPE-INFO). |
\(END-POINT-1 END-POINT-2 SHAPE-INFO). |
2585 |
|
|
2586 |
END-POINT-1 and END-POINT-2 are two-element vectors on the form [X Y]. |
END-POINT-1 and END-POINT-2 are two-element vectors on the form [X Y]. |
2587 |
SHAPE-INFO is a list of four straight lines." |
SHAPE-INFO is a list of four straight lines." |
2642 |
"Draw a square with corners at X1, Y1 and X2, Y2. |
"Draw a square with corners at X1, Y1 and X2, Y2. |
2643 |
|
|
2644 |
Output is a square, which is a list on the form |
Output is a square, which is a list on the form |
2645 |
(END-POINT-1 END-POINT-2 SHAPE-INFO). |
\(END-POINT-1 END-POINT-2 SHAPE-INFO). |
2646 |
|
|
2647 |
END-POINT-1 and END-POINT-2 are two-element vectors on the form [X Y]. |
END-POINT-1 and END-POINT-2 are two-element vectors on the form [X Y]. |
2648 |
SHAPE-INFO is a list of four straight lines." |
SHAPE-INFO is a list of four straight lines." |