Ich habe folgende Funktion:
func plot(a: Double,b: Double,c: Double,d: Double,cam: [Double]) -> CGPoint{
var dim: [Double] = []
var new_dim = [a,b,c,d]
var mul: Double = 0
for _ in 1...new_dim.count-2 {
dim = new_dim
new_dim = []
mul = 80/dim.last!
for i in 0...dim.count-2 {
new_dim.append((dim[i]-cam[i])*mul+cam[i])
//new_dim.append(dim[i]*mul)
}
}
return CGPoint(x: new_dim[0],y: new_dim[1])
}
Aber wenn ich d
verändere, verendert sich der Output nicht.Ich weiß nicht woran das liegt.Wenn ich es selbst rechne, verändert sich das Ergebnis.Was ich Rechen will ist:
A = (a-cam[0])*(80/d)+cam[0]
B = (b-cam[1])*(80/d)+cam[1]
C = (c-cam[2])*(80/d)+cam[2]
und dann(dafür die erste for Schleife):
a_ = (A-cam[0])*(80/C)+cam[0]
b_ = (B-cam[1])*(80/C)+cam[1]
Zumindest glaube ich, dass 4D perspective projection so funktioniert.Eventuell darf ich aber auch den Kamera Offset nicht 2x Berechnen.
Ich hoffe man kann meine Frage verstehen (: