@@ -149,18 +149,23 @@ 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_start_error = 2 * parallel_dy - parallel_dx;
158163 let mut point = seed_line. start ;
159164 let mut prev = point;
160165 let mut parallel_point = line. start ;
161166
162167 for i in 0 ..width {
163- // let p = point / 256;
168+ let p = point / 256 ;
164169
165170 // Pixel(p, Rgb888::RED).draw(display)?;
166171
@@ -190,14 +195,7 @@ fn thickline(
190195
191196 // Draw parallel line
192197 {
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;
198+ let mut parallel_line_error = parallel_start_error;
201199 let mut point = parallel_point;
202200
203201 for i in 0 ..original_delta_majorminor. major . abs ( ) {
@@ -207,11 +205,11 @@ fn thickline(
207205
208206 if parallel_line_error > 0 {
209207 point += parallel_step_majorminor. minor ;
210- parallel_line_error += e_minor ;
208+ parallel_line_error += parallel_e_minor ;
211209 }
212210
213211 point += parallel_step_majorminor. major ;
214- parallel_line_error += e_major ;
212+ parallel_line_error += parallel_e_major ;
215213 }
216214 }
217215
@@ -224,18 +222,13 @@ fn thickline(
224222 point += seed_step_majorminor. major ;
225223 parallel_point += seed_step_majorminor. major ;
226224 seed_line_error += e_major;
225+
226+ prev = p;
227227 }
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_start_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