@@ -149,14 +149,18 @@ fn thickline(
149149
150150 let dx = seed_delta_majorminor. major . abs ( ) ;
151151 let dy = seed_delta_majorminor. minor . abs ( ) ;
152+ let parallel_dx = parallel_delta_majorminor. major . abs ( ) ;
153+ let parallel_dy = parallel_delta_majorminor. minor . abs ( ) ;
152154
153155 // http://kt8216.unixcab.org/murphy/index.html calls e_minor E_diag, and e_major E_square
154156 let e_minor = -2 * dx;
155157 let e_major = 2 * dy;
158+ let parallel_e_minor = -2 * parallel_dx;
159+ let parallel_e_major = 2 * parallel_dy;
156160
157161 let mut seed_line_error = 2 * dy - dx;
162+ let mut parallel_error = 2 * parallel_dy - parallel_dx;
158163 let mut point = seed_line. start ;
159- let mut prev = point;
160164 let mut parallel_point = line. start ;
161165
162166 for i in 0 ..width {
@@ -190,14 +194,7 @@ fn thickline(
190194
191195 // Draw parallel line
192196 {
193- let dx = parallel_delta_majorminor. major . abs ( ) ;
194- let dy = parallel_delta_majorminor. minor . abs ( ) ;
195-
196- // http://kt8216.unixcab.org/murphy/index.html calls e_minor E_diag, and e_major E_square
197- let e_minor = -2 * dx;
198- let e_major = 2 * dy;
199-
200- let mut parallel_line_error = 2 * dy - dx;
197+ let mut parallel_line_error = parallel_error;
201198 let mut point = parallel_point;
202199
203200 for i in 0 ..original_delta_majorminor. major . abs ( ) {
@@ -207,14 +204,17 @@ fn thickline(
207204
208205 if parallel_line_error > 0 {
209206 point += parallel_step_majorminor. minor ;
210- parallel_line_error += e_minor ;
207+ parallel_line_error += parallel_e_minor ;
211208 }
212209
213210 point += parallel_step_majorminor. major ;
214- parallel_line_error += e_major ;
211+ parallel_line_error += parallel_e_major ;
215212 }
216213 }
217214
215+ // In the two blocks below, we could fix phasing here by moving `parallel_point` the right
216+ // amount. What is that amount though??
217+
218218 if seed_line_error > 0 {
219219 point += seed_step_majorminor. minor ;
220220 parallel_point += seed_step_majorminor. minor ;
@@ -228,14 +228,7 @@ fn thickline(
228228
229229 // Draw AA line
230230 {
231- let dx = parallel_delta_majorminor. major . abs ( ) ;
232- let dy = parallel_delta_majorminor. minor . abs ( ) ;
233-
234- // http://kt8216.unixcab.org/murphy/index.html calls e_minor E_diag, and e_major E_square
235- let e_minor = -2 * dx;
236- let e_major = 2 * dy;
237-
238- let mut parallel_line_error = 2 * dy - dx;
231+ let mut parallel_line_error = parallel_error;
239232 let mut point = parallel_point;
240233
241234 for i in 0 ..original_delta_majorminor. major . abs ( ) {
@@ -265,11 +258,11 @@ fn thickline(
265258
266259 if parallel_line_error > 0 {
267260 point += parallel_step_majorminor. minor ;
268- parallel_line_error += e_minor ;
261+ parallel_line_error += parallel_e_minor ;
269262 }
270263
271264 point += parallel_step_majorminor. major ;
272- parallel_line_error += e_major ;
265+ parallel_line_error += parallel_e_major ;
273266 }
274267 }
275268
0 commit comments