# Frage zu Vektoren



## Acdilyoh (13. Okt 2018)

Hallo,

ich würde gerne wissen, wie ich mir einen Vektor anzeigen lassen kann.

```
function Vector3(x,y,z)
{
  this.x=x;
  this.y=y;
  this.z=z;
}

var a = new Vector3( 0, 1, 0 ); document.write("<p>" + a + "<br>");
```
So habe ich es versucht aber der Vektor wird leider nicht wie gewünscht auf der Seite zurückgegeben. Es würde mir auch reichen wenn ich jede Zahl irgendwie einzeln aus dem Vektor herrausziehen kann und auf der Seite anzeigen lassen kann.


----------



## httpdigest (13. Okt 2018)

```
document.write("<p>" + [a.x, a.y, a.z].join(",") + "<br>");
```
Das hat aber nichts mit "Vektoren" zu tun, die es in JavaScript auch gar nicht gibt.
Du hast dir eine eigene Konstruktorfunktion geschrieben, die zufälligerweise "Vector" heißt, aber sonst wie jedes andere Objekt auch, Properties hat.
Die Frage war also eigentlich: Wie gebe ich die Werte der Properties eines Objektes aus?


----------



## Robat (13. Okt 2018)

Btw: JavaScript !=Java


----------



## Acdilyoh (13. Okt 2018)

Uff

Also ich kann ja mal sagen, was meine Aufgabe ist.

Ich sollte 3 Koordinatenwerte in

```
var a = new THREE.Vector3( 0, 1, 0 );
```

einfügen und mir über einen Browser anzeigen lassen.
Ich beschäftige mich jetzt erst seit ein paar Stunden mit Java und kenne mich daher nicht wirklich damit aus. Ich weiß ehrlich gesagt noch nicht einmal ob ich hier Javascript oder Java zu programmieren versuche. Aber ich tendiere zu Java.


----------



## mrBrown (13. Okt 2018)

Acdilyoh hat gesagt.:


> Ich beschäftige mich jetzt erst seit ein paar Stunden mit Java und kenne mich daher nicht wirklich damit aus.


Könnte daran liegen, dass das kein Java ist, sondern Javascript.


----------



## Acdilyoh (13. Okt 2018)

Gut dann bin ich schonmal etwas schlauer.


----------



## Acdilyoh (13. Okt 2018)

httpdigest hat gesagt.:


> ```
> document.write("<p>" + [a.x, a.y, a.z].join(",") + "<br>");
> ```
> Das hat aber nichts mit "Vektoren" zu tun, die es in JavaScript auch gar nicht gibt.
> ...



Also dein Vorschlag funktioniert aufjedenfall. Allerdings bringt mich das nicht zu der Lösung meines Problemes.


```
function kartesisch(x,y,z){
  var r = Math.sqrt(x**2+y**2); document.write("<p>" + r + "<br>");
  var b = r*Math.sin(y)*Math.cos(z);  document.write("<p>" + b + "<br>");
var c = r*Math.sin(y)*Math.sin(z); document.write("<p>" + c + "<br>");
var d = r*Math.cos(y); document.write("<p>" + d + "<br>");
}

kartesisch(10,2,4)

function Vector3(x,y,z)
{
  this.x=x;
  this.y=y;
  this.z=z;
}

var a = new Three.Vector3( b, c, d ); document.write("<p>" + [a.x, a.y, a.z].join(",") + "<br>");
```

Mit der Funktion kartesisch() will ich spharische Koordinaten in karthesische umwandeln. x,y und z sollen dann in dem Vektor gespeichert werden. Allerdings weiß ich nicht wie ich das mit dem Three.Vektor3 hinbekommen soll.


Falls das hier alles keinen Sinn macht, sagt bescheid, dann warte ich einfach bis zur nächsten Vorlesung.


----------



## mihe7 (14. Okt 2018)

Meinst Du sowas in der Richtung?


```
function Vector3(x,y,z) {
    this.x = x;
    this.y = y;
    this.z = z;
}

Vector3.prototype.kartesisch = function() {
    var r = Math.sqrt(Math.pow(this.x,2)+Math.pow(this.y,2));
    var b = r*Math.sin(this.y)*Math.cos(this.z);
    var c = r*Math.sin(this.y)*Math.sin(this.z);
    var d = r*Math.cos(this.y);
    return new Vector3(b,c,d);
}

Vector3.prototype.asString = function() {
    return [this.x, this.y, this.z].join(",");
}

var k = new Vector3(10,2,4);
var s = k.kartesisch();
document.write('<p>' + k.asString() + ' ==> ' + s.asString() + '</p>');
```


----------



## Acdilyoh (14. Okt 2018)

Ja perfekt das ist genau wie ich es haben wollte. Vielen Dank!


----------

