前后端目前确定采用传递svg进行图形传递。矩阵的svg
string rectangle ::getSvg() {
return "<svg xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\">\n"
" <rect x="+ toValidStr(recPoint[0].x)+" y="+toValidStr(recPoint[0].x)+
" width="+toValidStr(width)+" height="+toValidStr(height)+
" style=\"\n"
"\t\tstroke:black;stroke-width:3;fill:white;\n"
"\tfill-opacity:0;stroke-opacity:1.0\"/>\n"
"</svg>";
}
确立前后端的部分接口以后,对后端的大致的框架进行了设计。最基本的元素是一个个的组件,其次是整个画布,对所有的组件建一个父类component,然后各种组件分别继承自component类。
component类抽象了组件的共有特征,如组件外围矩阵的长和宽、判断点与组件的关系、外围矩阵点、判断鼠标与当前外围矩阵点的关系等等。
由于对于各种组件的操作与要求各不相同,所以对每种组件分别创建一个类,方便对组件的操作。
对于画布目前对其建立一个cavas类,类中主要对各个组件进行处理,如判断当前所选框内所包含的组件、在画布中创建组件等等。