一种动态几何软件中基于参数的坐标系实现方法与流程

文档序号:19992528发布日期:2020-02-22 02:25阅读:来源:国知局

技术特征:

1.一种动态几何软件中基于参数的坐标系实现方法,其特征在于,包括:

创建用户自定义坐标系,用户自定义坐标系包括原点、x轴、y轴、端点控制点、单位长度控制点和数据转换模块;

所述单位长度控制点包括单位长度控制变量和单位控制点,用于根据单位控制点被拖动前后的位置变换修改x轴和/或y轴的单位长度;

所述端点控制点包括端点控制变量和端点,用于根据端点被拖动前后的位置变换修改坐标系在动态几何画布页面的范围;

还包括由x轴和y轴创建的网格对象axisgrid,根据x轴和y轴的属性计算出网格对象的左上角和右下角位置;

所述数据转换模块,用于世界坐标系坐标与目标坐标系坐标的矩阵变换;

用户拖动端点控制点或单位长度控制点进行坐标转换时,根据位置坐标变换,计算出端点控制变量或单位长度控制变量,并根据计算结果修改轴的偏移量、轴、网格和数据转换模块。

2.根据权利要求1所述的一种动态几何软件中基于参数的坐标系实现方法,其特征在于,所述创建用户自定义坐标系的方法为:

a、选取一个点作为原点,记作o(o_x,o_y);

b、指定x轴半轴长为lx,y轴半轴长为ly,lx>0,ly>0;

c、分别创建x轴、y轴的两侧端点坐标:

创建x轴的端点控制变量ax,再由lx的长度乘以端点控制变量的值加上原点o的x坐标,求得x轴的右侧端点xr的x坐标(lx*ax+o_x),x轴右侧端点xr的y坐标为o_y,即x轴右侧端点xr(xr_x,xr_y)=xr(lx*ax+o_x,o_y);

同理,创建x轴的左侧端点xl(xl_x,xl_y)=xl(0_x-lx*ax,o_y);

创建y轴的端点控制变量ay,再由ly的长度乘以端点控制变量的值加上原点o的y坐标,求得y轴的上侧端点yt的y坐标(ly*ay+o_y),y轴上侧端点yt的x坐标为o_x,即y轴上侧端点yt(yt_x,yt_y)=yt(0_x,ly*ay+o_y);

同理,创建y轴的下侧端点yb(yb_x,yb_y)=yb(0_x,o_y-ly*ay);

d、分别创建x轴的单位长度控制变量u4和y轴的单位长度控制变量u5,由原点o的位置计算出x轴的控制点的位置记作xp(u4+o_x,o_y);y轴的单位控制点记作yp(o_x,u5+o_y);

e、创建x轴和y轴:

由点xl、原点o、点xp、点xr创建x轴,记作xz;

由点yl、原点o、点yp、点yr创建y轴,记作yz;

并为x轴、y轴分别设定了属性,属性包括间距、单位、是否显示数字、是否显示刻度、偏移量、间距控制刻度的位置、单位控制是否以π为单位和偏移量控制原点移动;

f、由x轴和y轴创建网格对象记作axisgrid,axisgrid根据x轴和y轴的属性计算出网格的左上角和右下角位置记作lefttop和rightbottom;其中:

axisgrid的原点坐标为(o_x-x轴偏移值*x轴的间距,o_y-y轴的偏移值*y轴的间距);

lefttop的坐标为(xl_x,yt_y)即(o_x-lx*ax,ly*ay+o_y);

rightbottom的坐标为(xr_x,yb_y)即(lx*ax+o_x,o_y-ly*ay);

并为网格设定属性,属性包括网格类型、是否显示网格属性和该坐标系是否为当前使用坐标系。

3.根据权利要求1所述的一种动态几何软件中基于参数的坐标系实现方法,其特征在于,所述数据转换模块属性有x坐标偏移量、y坐标偏移量、x坐标缩放比、y坐标缩放比;所述属性分别由目标坐标系的原点的x坐标、y坐标、x轴单位、y轴单位控制;

数据转换模块提供接口有:

transgts,用于将世界坐标转换为目标坐标系坐标;

transsts,用于将目标坐标系坐标转换为世界坐标;

reset,用于重置数据转换模块。

当前第2页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1