Skip to content

Commit 096dc31

Browse files
committed
Declare parallel Bresenham stuff outside loop
1 parent 6e7bb5b commit 096dc31

1 file changed

Lines changed: 14 additions & 21 deletions

File tree

debug-tools/examples/mul-both-axes.rs

Lines changed: 14 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)