@@ -191,6 +191,8 @@ fn thickline(
191
191
} ,
192
192
) ;
193
193
194
+ let mut parallel_error = 2 * parallel_delta. minor + parallel_delta. major ;
195
+
194
196
while thickness_accumulator. pow ( 2 ) <= thickness_threshold {
195
197
let p = Point :: new (
196
198
if seed_is_y_major {
@@ -248,6 +250,7 @@ fn thickline(
248
250
249
251
if prev. x != p. x {
250
252
mul_point += parallel_step_full. major ;
253
+ parallel_error += 2 * parallel_delta. minor ;
251
254
}
252
255
253
256
parallel_line_2 (
@@ -258,6 +261,7 @@ fn thickline(
258
261
Rgb888 :: CSS_AQUAMARINE ,
259
262
display,
260
263
true ,
264
+ parallel_error,
261
265
) ?;
262
266
263
267
thickness_accumulator += 2 * thickness_dy;
@@ -277,7 +281,7 @@ fn thickline(
277
281
thickness_accumulator += 2 * thickness_dx;
278
282
seed_point += seed_step. major * 2 ;
279
283
mul_point += parallel_step_full. minor * -1 * 2 ;
280
-
284
+ // parallel_error += 2 * parallel_delta.minor;
281
285
prev = p;
282
286
}
283
287
@@ -441,6 +445,7 @@ fn parallel_line_2(
441
445
c : Rgb888 ,
442
446
display : & mut impl DrawTarget < Color = Rgb888 , Error = std:: convert:: Infallible > ,
443
447
extra : bool ,
448
+ initial_error : i32 ,
444
449
) -> Result < ( ) , std:: convert:: Infallible > {
445
450
let mut point = start;
446
451
@@ -453,7 +458,8 @@ fn parallel_line_2(
453
458
let e_major = 2 * dy;
454
459
let length = dx;
455
460
// Setting this to zero causes the first segment before the minor step to be too long
456
- let mut error = 2 * dy - dx;
461
+ // let mut error = 2 * dy - dx;
462
+ let mut error = initial_error;
457
463
458
464
for _i in 0 ..length {
459
465
let p = Point :: new (
0 commit comments