Originariamente inviato da ricercato
per la retta (0,0) (0,8) il vettore conterrà 0 0, 0 1, ........ 0 8
devo creare due cicli for, uno per le x e uno per le y???
No.
Qui non è nemmeno un problema di programmazione ma ... di geometria!!!
Le coordinate dei 2 punti le potresti anche tenere come valori interi ma se vuoi calcolare dei valori intermedi, devi usare dei valori floating-point (altrimenti non avrebbe senso!).
Prendiamo la retta (0,0)-(3,2). In mezzo (prendendo come riferimento dei punti sulla ascissa) avresti i punti (1,0.6666666...) e (2,1.333333....).
Esempio in Java:
codice:
public class Prova
{
public static void main (String[] args)
{
int x1, y1, x2, y2, x;
float p, xp, yp;
x1=0;
y1=0;
x2=3;
y2=2;
p = ((float) y2 - y1) / (x2 - x1);
for (x=x1; x<=x2; x++)
{
xp = x;
yp = x * p;
System.out.println ("("+xp+","+yp+")");
}
}
}
Che stampa:
(0.0,0.0)
(1.0,0.6666667)
(2.0,1.3333334)
(3.0,2.0)
Nota bene: il mio è solo un esempio. Ci sarebbero da fare dei controlli!! Ad esempio se x2-x1 è zero, otterresti una eccezione per via della divisione per zero.