Why doesn’t the output change

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 (:

Nein, das ist nicht ganz klar.

Welches Ergebnis erwarten Sie?

Was bekommen Sie?

.

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.

Wo können Sie d ändern? Ich kann es im Code nicht sehen.

Hinweis: Wenn Sie Code posten, verwenden Sie bitte den Stil "Einfügen und Anpassen" sowie den Code-Formatierer


No, it is not very clear.

What result do you expect ?

What do you get ?

.

But when I change d, the output doesn't change.I don't know what the reason is.When I calculate it myself, the result changes.

Where do you change d ? I cannot see in code.

Note: when you post code, please use Paste and Match style as well as code formatter

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])

}
Why doesn’t the output change
 
 
Q