public void ChangeVectorToSelectedPoint(Point point) { BigInteger tempVectorX = new BigInteger(Math.Round((point.X - y_line.X1) / PixelsPerPoint / scalingFactorX)); BigInteger tempVectorY = new BigInteger(Math.Round((x_line.Y1 - point.Y) / PixelsPerPoint / scalingFactorY)); VectorND tempNewVector = new VectorND(new[] { tempVectorX, tempVectorY }); //Bevor geändert werden kann, muss auf lineare Unabhängigkeit geprüft werden LatticeND tempLattice = selectedPointTag == 1 ? new LatticeND(new[] { tempNewVector, Lattice.Vectors[1] }, false) : new LatticeND(new[] { Lattice.Vectors[0], tempNewVector }, false); if (tempLattice.Determinant == 0) { return; } Lattice = tempLattice; Lattice.GaussianReduce(); NotifyPropertyChanged("Lattice"); AddCoordinateLinesAndBasisVectorsToCanvas(); UpdateCanvas(); }