Я пишу код для рисования линий длиной 2 8 пикселей на ЖК-дисплее.Я хотел бы сделать это с помощью цикла for, однако я застрял, пытаясь понять, как соединить начало второго и конец первого.Следующий код создает шаблон, который мне нужен, однако он очень повторяется при выполнении множества строк:
void draw_road(){
double angle = PI/2;
double length = 8;
int starting_x = 24;
int starting_y = 48;
double x1a = starting_x;
double y1a = starting_y;
double x2a = x1a + (cos(angle) * length);
double y2a = y1a - (sin(angle) * length);
draw_line(x1a, y1a, x2a, y2a, FG_COLOUR);
double x1b = x2a ;
double y1b = y2a;
double x2b = x1b + (cos(angle-(angle/4.5)) * length);
double y2b = y1b - (sin(angle-(angle/4.5)) * length);
draw_line(x1b, y1b, x2b, y2b, FG_COLOUR);
}
Я пробовал приведенный ниже код, однако не думаю, что он знает, где искать [i-1].
void draw_road(){
double angle = PI/2;
double length = 8;
int starting_x = 24;
int starting_y = 48;
double x1[2];
double y1[2];
double x2[2];
double y2[2];
for (int i = 0; i < 2; i++){
x1[i] = starting_x + x2[i-1];
y1[i] = starting_y + y2[i-1];
x2[i] = x1[i] + (cos(angle) * length);
y2[i] = y1[i] - (sin(angle) * length);
draw_line(x1[i], y1[i], x2[i], y2[i], FG_COLOUR);
angle /= 2;
}
}
Как я могу исправить это, чтобы цикл for знал значения последнего цикла (особенно, если это самый первый цикл)?