Ho 1 linea con 2 punti noti:Scorrere N punti che sono perpendicolari ad un'altra linea
PointF p2_1 = new PointF();
p2_1.X = 100; // x1
p2_1.Y = 150; // y1
PointF p2_2 = new PointF();
p2_2.X = 800; // x2
p2_2.Y = 500; // y2
float dx = p2_2.X - p2_1.X;
float dy = p2_2.Y- p2_1.Y;
float slope = dy/dx; // slope m
float intercept = p2_1.Y - slope * p2_1.X; // intercept c
// y = mx + c
mi vuoi scorrere 10 pixel verso sinistra (o destra) per 1 riga (A x1, y1).
I punti rossi sono quelli che mi piacerebbe processo. Esempio:
for (int i = 10; i > 0; i--)
{
// start with distant coordinates
PointF new_point = new Point(); // (grab x,y, coords accordingly)
// repeat until I'm at (x1, y1)
}
Come faccio a scorrere queste corde?
Volevo solo gettare questo qui: [Un'implementazione di algoritmo disegno al tratto di Bresenham] (http://ericw.ca/notes/bresenhams-line-algorithm-in-csharp.html). È piuttosto breve e ti dà un pratico 'IEnumerable' per iterare con. Puoi nutrirlo con le stringhe finali dalle risposte qui sotto. –