18
18
; ; * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
19
19
; ; ***************************************************************************
20
20
21
- (define (script-fu-HexGrid
21
+ (define (script-fu-HexGrid-jms
22
22
gType
23
23
circDiam
24
24
xCirc
47
47
(xStart 0.0 )
48
48
(yStart 0.0 )
49
49
(rowCheck 0.0 )
50
+
51
+ (vGapSpace 0 )
50
52
)
51
53
52
54
(gimp-context-push)
53
55
(cond
54
56
((= gType 0 )
57
+ (set! vGapSpace (+ -4.5 (* gapSpace 0.722 )) )
55
58
(set! inWidth (+ (+ tBorder (* circDiam xCirc)) (* gapSpace (- xCirc 1 ))))
56
- (set! inHeight (+ (+ tBorder (* circDiam yCirc)) (* gapSpace (- yCirc 1 ))))
59
+ (set! inHeight (+ (+ tBorder (* circDiam yCirc)) (* vGapSpace (- yCirc 1 ))))
57
60
)
58
61
((= gType 1 )
59
- (set! xGap (round (* s3 (+ circRad (round (* 0.5 gapSpace ))))))
62
+ (set! xGap (round (* s3 (+ circRad (round (* gapSpace 0.5 ))))))
60
63
(set! yGap (* gapSpace (- yCirc 1 )))
61
64
(set! inWidth (+ (+ tBorder circDiam) (+ (* (- xCirc 1 ) xGap))))
62
65
(set! inHeight (+ tBorder (+ circRad (+ yGap (+ (round (* gapSpace 0.5 )) (* circDiam yCirc))))))
68
71
69
72
(gimp-image-insert-layer theImage baseLayer 0 0 )
70
73
74
+ (gimp-context-set-feather FALSE)
75
+ (gimp-context-set-feather-radius 0.0 0.0 )
76
+ (gimp-context-set-antialias TRUE)
77
+
71
78
(gimp-context-set-background bgColor)
72
79
(gimp-context-set-foreground gridColor)
73
80
77
84
(cond
78
85
((= gType 0 )
79
86
(set! xStart (+ oBorder (* xFlag (+ circDiam gapSpace))))
87
+
88
+ ; (set! rowCheck 0.0)
89
+ ; reduce vGapSpace by just less than the golden ratio to improve appearance
90
+ (set! vGapSpace (+ -4.5 (* gapSpace 0.722 )) )
91
+ ; (gimp-message (number->string vGapSpace))
80
92
)
81
93
((= gType 1 )
82
94
(if (= (fmod xFlag 2 ) 1 )
83
- (set! rowCheck (+ (* gapSpace 0.5 ) circRad))
95
+ (set! rowCheck (+ (* 0.5 gapSpace ) circRad))
84
96
)
85
- (set! xStart (+ oBorder (* s3 (+ circRad (round (* 0.5 gapSpace))) xFlag)))
97
+ (set! xStart (+ oBorder (* s3 (* ( + circRad (round (* 0.5 gapSpace))) xFlag) )))
86
98
)
87
99
)
88
100
89
101
(while (< yFlag yCirc)
102
+ ; (gimp-message (number->string rowCheck))
103
+ ; (gimp-message (number->string oBorder))
104
+ ; (gimp-message (number->string gapSpace))
105
+ ; (gimp-message (number->string yFlag))
106
+ ; (quit)
107
+
108
+ ; (gimp-message "line102")
109
+ ; (set! yStart (+ rowCheck (+ oBorder (+ (* gapSpace yFlag) (* circDiam yFlag)))))
90
110
(set! yStart (+ rowCheck (+ oBorder (+ (* gapSpace yFlag) (* circDiam yFlag)))))
91
111
92
- (gimp-free-select theImage 12
112
+ (if (= gType 0 )
113
+ (begin
114
+ ; (gimp-message "line111 adjust yStart")
115
+ (set! yStart (+ rowCheck (+ oBorder (+ (* vGapSpace yFlag) (* circDiam yFlag)))))
116
+ )
117
+ )
118
+
119
+
120
+ ; (gimp-message "line106")
121
+ ; (gimp-free-select theImage 12
122
+ ; (vector xStart (+ yStart (* circDiam 0.5))
123
+ ; (+ xStart (* circDiam 0.25)) (+ yStart (* circDiam 0.067))
124
+ ; (+ xStart (* circDiam 0.75)) (+ yStart (* circDiam 0.067))
125
+ ; (+ xStart circDiam) (+ yStart (* circDiam 0.5))
126
+ ; (+ xStart (* circDiam 0.75)) (+ yStart (* circDiam 0.933))
127
+ ; (+ xStart (* circDiam 0.25)) (+ yStart (* circDiam 0.933))
128
+ ; )
129
+ ; CHANNEL-OP-REPLACE TRUE FALSE 0)
130
+
131
+ ; (gimp-message "line130")
132
+ (gimp-context-set-feather FALSE)
133
+ ; (gimp-context-set-feather-radius 0.0 0.0)
134
+
135
+ (gimp-image-select-polygon theImage CHANNEL-OP-REPLACE 12
93
136
(vector xStart (+ yStart (* circDiam 0.5 ))
94
137
(+ xStart (* circDiam 0.25 )) (+ yStart (* circDiam 0.067 ))
95
138
(+ xStart (* circDiam 0.75 )) (+ yStart (* circDiam 0.067 ))
96
139
(+ xStart circDiam) (+ yStart (* circDiam 0.5 ))
97
140
(+ xStart (* circDiam 0.75 )) (+ yStart (* circDiam 0.933 ))
98
141
(+ xStart (* circDiam 0.25 )) (+ yStart (* circDiam 0.933 ))
99
142
)
100
- CHANNEL-OP-REPLACE TRUE FALSE 0 )
101
- (gimp-edit-bucket-fill baseLayer BUCKET-FILL-FG LAYER-MODE-NORMAL 100 255 0 0 0 )
102
- (set! yFlag (+ 1 yFlag))
143
+ )
144
+
145
+ (gimp-edit-bucket-fill baseLayer BUCKET-FILL-FG LAYER-MODE-NORMAL 100 255 0 0 0 )
146
+ (set! yFlag (+ yFlag 1 ))
103
147
)
104
148
105
149
(set! xFlag (+ xFlag 1 ))
115
159
)
116
160
117
161
(script-fu-register
118
- " script-fu-HexGrid"
162
+ " script-fu-HexGrid-jms "
119
163
" Grid - Hexagon..."
120
164
" Creates a grid of X by Y Hexagons. either in rectangular or hexagonal packing. - \n file:JMS-Grid_Create_Hexagon.scm"
121
165
" James Sambrook"
124
168
" "
125
169
SF-OPTION " Grid Type" ' ( " Rectangular"
126
170
" Hexagonal" )
127
- SF-ADJUSTMENT _ " Circular Diameter" ' (40 10 200 1 5 0 0 )
128
- SF-ADJUSTMENT _ " Hexes in X Direction" ' (10 1 100 1 5 0 0 )
129
- SF-ADJUSTMENT _ " Hexes in y Direction" ' (10 1 100 1 5 0 0 )
130
- SF-ADJUSTMENT _ " Outer Border Around Hexagons" ' (10 1 100 1 5 0 0 )
131
- SF-ADJUSTMENT _ " Gap Between the Hexagons" ' (10 1 100 1 5 0 0 )
132
- SF-COLOR _ " Color for grid lines " ' (0 0 0 )
133
- SF-COLOR _ " Color for interior " ' (255 255 255 )
171
+ SF-ADJUSTMENT " Circular Diameter" ' (40 10 200 1 5 0 0 )
172
+ SF-ADJUSTMENT " Hexes in X Direction" ' (10 1 100 1 5 0 0 )
173
+ SF-ADJUSTMENT " Hexes in y Direction" ' (10 1 100 1 5 0 0 )
174
+ SF-ADJUSTMENT " Outer Border Around Hexagons" ' (10 0 100 1 5 0 0 )
175
+ SF-ADJUSTMENT " Gap Between the Hexagons" ' (10 0 100 1 5 0 0 )
176
+ SF-COLOR " Color for Hexagons " ' (0 0 0 )
177
+ SF-COLOR " Color for background " ' (255 255 255 )
134
178
)
135
179
136
- (script-fu-menu-register " script-fu-HexGrid"
180
+ (script-fu-menu-register " script-fu-HexGrid-jms "
137
181
" <Toolbox>/Script-Fu/Render/Pattern/" )
138
182
139
183
; end of script
0 commit comments