本文整理汇总了C++中wxMatrix2D::GetHeight方法的典型用法代码示例。如果您正苦于以下问题:C++ wxMatrix2D::GetHeight方法的具体用法?C++ wxMatrix2D::GetHeight怎么用?C++ wxMatrix2D::GetHeight使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类wxMatrix2D
的用法示例。
在下文中一共展示了wxMatrix2D::GetHeight方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: wxT
wxMatrix2D wxMatrix2D::Mult(const wxMatrix2D &B) const
{
wxMatrix2D temp;
wxCHECK_MSG(Ok() && B.Ok(), temp, wxT("Invalid matrix"));
wxCHECK_MSG(GetWidth() == B.GetHeight(), temp, wxT("Invalid matrix dimensions for mult"));
int b_width = B.GetWidth();
int i, j, k, width = M_MATRIXDATA->m_width, height = M_MATRIXDATA->m_height;
if (!temp.Create(b_width, height, true))
return temp;
double *data = GetData();
double *b_data = B.GetData();
double *temp_data = temp.GetData();
for (j = 0; j < height; ++j)
{
for (i = 0; i < b_width; ++i)
{
for (k = 0; k < width; ++k)
{
temp_data[j+i*b_width] += data[k+i*width]*b_data[j+k*b_width];
}
}
}
return temp;
}
示例2: if
wxMatrix2D wxMatrix2D::InsertRows(int row, const wxMatrix2D& matrix) const
{
wxMatrix2D temp;
wxCHECK_MSG(Ok() && matrix.Ok(), temp, wxT("Invalid wxMatrix2D"));
int width = M_MATRIXDATA->m_width, height = M_MATRIXDATA->m_height;
wxCHECK_MSG(width == matrix.GetWidth(), temp, wxT("Number of cols must match in InsertRows"));
wxCHECK_MSG((row >= -1) && (row <= height), temp, wxT("Invalid wxMatrix2D"));
if (!temp.Create(width, height + matrix.GetHeight(), false))
return temp;
if (row < 0) row = height; // fix row to be positive, from 0 - height
int size = width*height;
int matrix_size = matrix.GetWidth()*matrix.GetHeight();
double *data = GetData();
double *matrix_data = matrix.GetData();
double *temp_data = temp.GetData();
if (row < 1) // prepend the matrix to the beginning
{
memcpy(temp_data, matrix_data, sizeof(double)*matrix_size);
memcpy(&temp_data[matrix_size], data, sizeof(double)*size);
}
else if (row >= height) // append the matrix to the end
{
memcpy(temp_data, data, sizeof(double)*size);
memcpy(&temp_data[size], matrix_data, sizeof(double)*matrix_size);
}
else // insert the matrix in the middle
{
memcpy(temp_data, data, sizeof(double)*width*row);
memcpy(&temp_data[width*row], matrix_data, sizeof(double)*matrix_size);
memcpy(&temp_data[width*row+matrix_size], &data[width*row], sizeof(double)*(size-width*row));
}
return temp;
}