现有一块画布上(Canvas)它有如下功能: 定义addShape(Shape s)在画布上新增并绘制出其形状; 定义removeShape(Shape s)删除画布上已存在的形状 定义clone(

简介: 现有一块画布上(Canvas)它有如下功能: 定义addShape(Shape s)在画布上新增并绘制出其形状; 定义removeShape(Shape s)删除画布上已存在的形状 定义clone(

题目描述:

现有一块画布上(Canvas)它有如下功能:

  • 定义addShape(Shape s)在画布上新增并绘制出其形状;
  • 定义removeShape(Shape s)删除画布上已存在的形状
  • 定义clone(Shape s)克隆一个已存在的形状增加到画布上
  • 定义Shape Max()方法返回画布上面积最大的形状(如果有相等的几个返回第一个)
  • 定义public double getArea()方法求画布上所有形状的面积和
  • 定义printAllShapes()方法打印画布上所有形状信息
  • 每一个形状(Shape)类,都有创建时的日期数据域(createdDate),创建的颜色(color),求面积和绘制图形的方法等等,每一个形状都是能被比较和复制(复制的时候,形状的时间应该是被复制的时间而不是被复制的形状的创建时间)。长方形和圆形是形状类的子类,它们会重写父类求面积和绘制图形的方法。为了程序实现方便,我们这里只定义两种图形。

代码:


目录
相关文章
|
4月前
|
Web App开发 前端开发
canvas系列教程04 —— 渐变、阴影、路径、状态、Canvas对象、图形重叠模式
canvas系列教程04 —— 渐变、阴影、路径、状态、Canvas对象、图形重叠模式
366 0
|
6月前
|
算法 数据可视化
圆填充( CIRCLE PACKING)算法圆堆图圆形空间填充算法可视化
圆填充( CIRCLE PACKING)算法圆堆图圆形空间填充算法可视化
|
6月前
|
监控 API 计算机视觉
OpenCV这么简单为啥不学——1.4、基础标识绘制(绘制线line函数、rectangle函数绘制四边形、circle函数绘制圆形、putText函数绘制文字、putText绘制中文文字)
OpenCV这么简单为啥不学——1.4、基础标识绘制(绘制线line函数、rectangle函数绘制四边形、circle函数绘制圆形、putText函数绘制文字、putText绘制中文文字)
65 0
|
6月前
|
前端开发
|
6月前
[Qt5] 矩形、圆和多边形ROI区域的交互(List View列表视图,halcon实现)
[Qt5] 矩形、圆和多边形ROI区域的交互(List View列表视图,halcon实现)
143 0
|
存储 前端开发
canvas自定义绘制顺序解决遮挡问题
canvas自定义绘制顺序解决遮挡问题
230 0
C# GDI+绘图(四)实现网格绘制,并填充相应的表格内容
C# GDI+绘图(四)实现网格绘制,并填充相应的表格内容
MFC绘制二维图形【1】—— 使用映射模式函数自定义坐标系
MFC绘制二维图形【1】—— 使用映射模式函数自定义坐标系
356 0
MFC绘制二维图形【1】—— 使用映射模式函数自定义坐标系
|
定位技术
egret纹理填充模式(上下填充)
egret纹理填充模式(上下填充)
egret纹理填充模式(上下填充)
Py之matplotlib:matplotlib绘图中与颜色相关的参数(color颜色参数、linestyle线型参数、marker标记参数)可选列表集合(建议收藏)
Py之matplotlib:matplotlib绘图中与颜色相关的参数(color颜色参数、linestyle线型参数、marker标记参数)可选列表集合(建议收藏)
Py之matplotlib:matplotlib绘图中与颜色相关的参数(color颜色参数、linestyle线型参数、marker标记参数)可选列表集合(建议收藏)