/// <summary> /// ��]�g��s���ݒ肷��B /// rad = 0�`512�����Ƃ���p�x�B /// rate = �g��䗦 /// ��]�����́Ax����E�Ay����������ɂƂ�Ȃ玞�v�܂��B /// /// �^�̓����R���X�g���N�^����ĂȂ��̂Ń}�[�J�[���̃R���X�g���N�^�� /// �p���đΏ�����B��MatrixRotate�͒P�Ȃ�enum /// </summary> /// <param name="r"></param> /// <param name="rad"></param> /// <param name="rate"></param> public Matrix2D(MatrixRotate dummyMarker, float rad, float rate) { A = D = (float)(global::System.Math.Cos (global::System.Math.PI * rad / 256) * rate); C = (float)(global::System.Math.Sin (global::System.Math.PI * rad / 256) * rate); B = -C; }
/// <summary> /// ��]�s���ݒ肷��B /// rad = 0�`512�����Ƃ���p�x�B /// ��]�����́Ax����E�Ay����������ɂƂ�Ȃ玞�v�܂��B /// /// �^�̓����R���X�g���N�^����ĂȂ��̂Ń}�[�J�[���̃R���X�g���N�^�� /// �p���đΏ�����B��MatrixRotate�͒P�Ȃ�enum /// </summary> /// <returns></returns> public Matrix2D(MatrixRotate r, float rad) { A = D = (float)global::System.Math.Cos (global::System.Math.PI * rad / 256); C = (float)global::System.Math.Sin (global::System.Math.PI * rad / 256); B = -C; }
/// <summary> /// 回転拡大行列を設定する。 /// rad = 0〜512を一周とする角度。 /// rate = 拡大比率 /// 回転方向は、x軸を右、y軸を下方向にとるなら時計まわり。 /// /// 型の同じコンストラクタを持てないのでマーカーつきのコンストラクタを /// 用いて対処する。→MatrixRotateは単なるenum /// </summary> /// <param name="r"></param> /// <param name="rad"></param> /// <param name="rate"></param> public Matrix2D(MatrixRotate dummyMarker, float rad, float rate) { A = D = (float)(global::System.Math.Cos (global::System.Math.PI * rad / 256) * rate); C = (float)(global::System.Math.Sin (global::System.Math.PI * rad / 256) * rate); B = -C; }
/// <summary> /// 回転行列を設定する。 /// rad = 0〜512を一周とする角度。 /// 回転方向は、x軸を右、y軸を下方向にとるなら時計まわり。 /// /// 型の同じコンストラクタを持てないのでマーカーつきのコンストラクタを /// 用いて対処する。→MatrixRotateは単なるenum /// </summary> /// <returns></returns> public Matrix2D(MatrixRotate r, float rad) { A = D = (float)global::System.Math.Cos (global::System.Math.PI * rad / 256); C = (float)global::System.Math.Sin (global::System.Math.PI * rad / 256); B = -C; }
private async Task <Matrix> Rotate(int rows, int cols, int rotations) { Matrix matrix = new Matrix(rows, cols); MatrixRotate matrixRotate = new MatrixRotate(matrix); await matrixRotate.Rotate(rotations); return(matrixRotate.Matrix); }
static async Task matrixRotation(int rows, int columns, bool random, int rotations, bool print) { var watch = System.Diagnostics.Stopwatch.StartNew(); Matrix matrix = new Matrix(rows, columns, random); MatrixRotate matrixRotation = new MatrixRotate(matrix, print); await matrixRotation.Rotate(rotations); watch.Stop(); Console.Write($"\r\n Time execution: {watch.ElapsedMilliseconds} ms \r\n"); }