设计一个折线类 CLine 1、该类有属性:组成线的点数、点坐标数组(动态或静态)、线的颜色(整数)、线的宽度(整数); 2、该类有方法: a)设置和获取颜色 两个方法 b)设置和获取线宽 两个方法 c) 添加一个点到线上 b)在线上删除一个点 e)修改一个线上点的坐标 f)获取线上的点数 g)获取一个线上点的坐标
时间: 2023-05-30 19:06:14 浏览: 62
cline.m:沿长度绘制带有颜色编码的 3D 线。-matlab开发
class CLine {
private:
int m_pointCount; // 组成线的点数
int* m_pointCoords; // 点坐标数组
int m_color; // 线的颜色
int m_width; // 线的宽度
public:
// 构造函数
CLine(int pointCount, int* pointCoords, int color, int width) {
m_pointCount = pointCount;
m_pointCoords = new int[pointCount * 2];
for (int i = 0; i < pointCount * 2; i++) {
m_pointCoords[i] = pointCoords[i];
}
m_color = color;
m_width = width;
}
// 设置颜色
void setColor(int color) {
m_color = color;
}
// 获取颜色
int getColor() const {
return m_color;
}
// 设置线宽
void setWidth(int width) {
m_width = width;
}
// 获取线宽
int getWidth() const {
return m_width;
}
// 添加一个点到线上
void addPoint(int x, int y) {
int* newCoords = new int[(m_pointCount + 1) * 2];
for (int i = 0; i < m_pointCount * 2; i++) {
newCoords[i] = m_pointCoords[i];
}
newCoords[m_pointCount * 2] = x;
newCoords[m_pointCount * 2 + 1] = y;
delete[] m_pointCoords;
m_pointCoords = newCoords;
m_pointCount++;
}
// 在线上删除一个点
void deletePoint(int index) {
int* newCoords = new int[(m_pointCount - 1) * 2];
for (int i = 0; i < index * 2; i++) {
newCoords[i] = m_pointCoords[i];
}
for (int i = index * 2 + 2; i < m_pointCount * 2; i++) {
newCoords[i - 2] = m_pointCoords[i];
}
delete[] m_pointCoords;
m_pointCoords = newCoords;
m_pointCount--;
}
// 修改一个线上点的坐标
void modifyPoint(int index, int x, int y) {
m_pointCoords[index * 2] = x;
m_pointCoords[index * 2 + 1] = y;
}
// 获取线上的点数
int getPointCount() const {
return m_pointCount;
}
// 获取一个线上点的坐标
void getPointCoord(int index, int& x, int& y) const {
x = m_pointCoords[index * 2];
y = m_pointCoords[index * 2 + 1];
}
};
阅读全文