用任何定义的点绘制矩形
Draw Rectangles with any defined point
你好,我是工科学生,目前正在从事 C++ 项目。我需要用这个函数绘制几个矩形,但我只能通过定义相同的左上角来绘制它们。我想通过定义 recangle 的 9 个点之一来绘制矩形(中间中心,中间左侧,中间右侧,右上角,左上角,底部中心......)。
你能帮帮我吗?
void Svgfile::addRectangle(int x1,int y1,int width,int height, std::string color)
{
m_ostrm << "<polygon points=\" "
<< x1 << "," << y1 << " "
<< x1+width << "," << y1 << " "
<< x1+width << "," << y1+height << " "
<< x1 << "," << y1+height << " "
<< x1 << "," << y1
<< "\" style=\"fill:" << color
<< "\" />\n";
}
将所有有问题的点转换为左上角的点并使用相同的代码。对于每个点类型的转换,您可以使用开关、if/else 或函数调用。例如如果是中点或者右上角,你可以这样定义它们
void Svgfile::addRectangleTopRight(int x1,int y1,int width,int height, std::string color)
{
addRectangle(x1-width, x2, width, height, color) ;
}
void Svgfile::addRectangleMid(int x1,int y1,int width,int height, std::string color)
{
addRectangle(x1-width/2, x2-height/2, width, height, color) ;
}
你好,我是工科学生,目前正在从事 C++ 项目。我需要用这个函数绘制几个矩形,但我只能通过定义相同的左上角来绘制它们。我想通过定义 recangle 的 9 个点之一来绘制矩形(中间中心,中间左侧,中间右侧,右上角,左上角,底部中心......)。 你能帮帮我吗?
void Svgfile::addRectangle(int x1,int y1,int width,int height, std::string color)
{
m_ostrm << "<polygon points=\" "
<< x1 << "," << y1 << " "
<< x1+width << "," << y1 << " "
<< x1+width << "," << y1+height << " "
<< x1 << "," << y1+height << " "
<< x1 << "," << y1
<< "\" style=\"fill:" << color
<< "\" />\n";
}
将所有有问题的点转换为左上角的点并使用相同的代码。对于每个点类型的转换,您可以使用开关、if/else 或函数调用。例如如果是中点或者右上角,你可以这样定义它们
void Svgfile::addRectangleTopRight(int x1,int y1,int width,int height, std::string color)
{
addRectangle(x1-width, x2, width, height, color) ;
}
void Svgfile::addRectangleMid(int x1,int y1,int width,int height, std::string color)
{
addRectangle(x1-width/2, x2-height/2, width, height, color) ;
}