Ejemplo n.º 1
0
        /// <summary>
        /// Add two basis vector lines (1 i-hat and 1 j-hat) to the VetorLines list
        /// </summary>
        public void AddBasisVectors()
        {
            BasisVectors.Add(new DWLine
                             (
                                 IHat.X, IHat.Y,
                                 LineType.BASE,
                                 new Line
            {
                Stroke          = Brushes.LightGreen,
                StrokeThickness = 3,
                X1 = CanvasXOrigin,
                Y1 = CanvasYOrigin,
                X2 = CanvasXOrigin + (IHat.X * UnitLength),
                Y2 = CanvasYOrigin - (IHat.Y * UnitLength)
            }, Brushes.LightGreen
                             ));

            BasisVectors.Add(new DWLine
                             (
                                 JHat.X, JHat.Y,
                                 LineType.BASE,
                                 new Line
            {
                Stroke          = Brushes.Red,
                StrokeThickness = 3,
                X1 = CanvasXOrigin,
                Y1 = CanvasYOrigin,
                X2 = CanvasXOrigin + (JHat.X * UnitLength),
                Y2 = CanvasYOrigin - (JHat.Y * UnitLength)
            }, Brushes.Red
                             ));
        }
Ejemplo n.º 2
0
        private Matrix <double> AssembleQMatrix()
        {
            var rows = this.BasisVectors.RowCount;

            Matrix <double> lowerOnes = DenseMatrix.Create(
                rows,
                rows,
                (r, c) => (r < c) ? 0 : 1);

            return(2 * BasisVectors.TransposeThisAndMultiply(
                       lowerOnes.TransposeThisAndMultiply(
                           lowerOnes * BasisVectors)));
        }