View Single Post
Old 15-02-2008, 01:48 PM   #2
falleaf
PIC Bang chủ
 
falleaf's Avatar
 
Tham gia ngày: May 2005
Bài gửi: 2,631
:
Send a message via Yahoo to falleaf
Đây là file RPMatrix.h, ngoài ra còn có các hình ảnh mà F đính kèm để cho các bạn chưa quen thuộc với VC++ xem. Các bạn bấm F5 để bắt đầu debug. Nhấn OK. Sau đó nhấn F5 để nhảy từng bước. Sau khi nhảy đến dòng int a =1 (dòng này vô nghĩa, chỉ viết đại đó để debug thôi), các bạn quan sát ở ô bên tay trái như trong hình. sau đó các bạn thay ShowMatrix(M1) bằng ShowMatrix(M2) thì các bạn sẽ nhìn thấy rõ kết quả của biến showMatrix.

Biến showMatrix là một mảng [100][100], vì vậy ma trận Mi sẽ được lưu vào 3 cột 0, 1, 2 của showMatrix.

Các bạn theo dõi loạt hình bên dưới đây.

Còn dưới đây là file RPMatrix.h để các bạn biết có các hàm nào trong đó.

Code:
class CRPMatrix  
{
public:
	// Cac phep toan ma tran
	bool SVD(CRPMatrix& U, CRPMatrix& D, CRPMatrix& V);
	double NormF(const CRPMatrix& A);
	double Trace(const CRPMatrix& A);
	double Cross(const CRPMatrix& A, const CRPMatrix& B);
	double Dot(const CRPMatrix& A, const CRPMatrix& B) const;
	CRPMatrix& Zero(void);
	CRPMatrix& Inv(void);
	friend CRPMatrix Inv(const CRPMatrix& A);
	CRPMatrix& Tr(void);
	friend CRPMatrix Tr(const CRPMatrix& A);
	bool Eigen(CRPMatrix& EigenValue, CRPMatrix& EigenVector) const;
	CRPMatrix& Copy(const CRPMatrix& A);

	// Dinh nghia lai cac phep toan giua so thuc va ma tran
	CRPMatrix operator/ (const double a);
	CRPMatrix operator* (const CRPMatrix& A);
	CRPMatrix operator* (const double a);
	friend CRPMatrix operator* (double a, const CRPMatrix& A);
	CRPMatrix operator- (const CRPMatrix& A);
	CRPMatrix operator+ (const CRPMatrix& A);
	CRPMatrix& operator= (const CRPMatrix& A);
	
	// Cac thong tin ve kich thuoc ma tran
	double GetLength(void);
	int GetSize(void) const;
	void GetSize(int* row, int* col);
	int GetColSize(void) const;
	int GetRowSize(void) const;
	CRPMatrix GetColumn(const int col);
	friend CRPMatrix GetColumn(const CRPMatrix& A, const int col);
	CRPMatrix GetRow(const int row);
	friend CRPMatrix GetRow(const CRPMatrix& A, const int row);
	CRPMatrix GetMatrix(int row, int col);
	bool SetRow(const int row, const CRPMatrix& A, const int Arow);
	bool SetColumn(const int col, const CRPMatrix& A, const int Acol);

	// Khoi tao va gan/dat cac gia tri ma tran
	double GetAt(const int row, const int col) const;
	double GetAt(const int i) const;
	bool SetAt(const int i, const double value);
	bool SetAt(const int row, const int col, const double value);
	void New(const int rowsize, const int colsize);
	void New(const int rowsize);
	CRPMatrix& Eye(void);
	CRPMatrix(const int rowsize, const int colsize);
	CRPMatrix(const int rowsize);
	CRPMatrix(CRPMatrix& A);
	CRPMatrix(void);
	virtual ~CRPMatrix();

protected:
	// dung cho SVD
	double pythag(const double a, const double b);

	// cac bien toan cuc cua CRPMatrix
	int m_iError;
	int m_iCSize;
	int m_iRSize;
	bool m_bAlloc;
	double **m_pElement;
};
Hình Kèm Theo
File Type: png RP Robotic Project.PNG (40.6 KB, 30 lần tải)
File Type: png Run RP.PNG (9.3 KB, 583 lần tải)
File Type: png RP Debug.PNG (45.7 KB, 11 lần tải)
File Type: png RP In Debug.PNG (44.2 KB, 11 lần tải)
File Type: png RP In Debug 2.PNG (42.8 KB, 9 lần tải)
File Type: png RP In Debug 3.PNG (45.4 KB, 11 lần tải)
falleaf vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn