举例来说吧.我在三维坐标中有1000个点(10X10X10),每个点有其自己的xyz坐标和颜色,是否是线段的起终点等等属性.在程序中,通过研究一些数据,给这些点的各个属性变化相应的值,并在任意两点间线段连接等等. 是不是很容易.现在我脑子木木的,应该是(1)写一个 Class Point ,里面有xyz color 等等属性和一些方法,还是应该写一个(2) Class Space ,里面有1000个数组变量.
如果是(1),那么我Point p=new Point();后,给其xyz坐标赋值后,这个点有什么意义?如果和1000个点有所联系?
如果我遍历1000个点
Point[,,] p=new Point[10,10,10];
for(int i=0;i<10;i++)for(int j=0;j<10;j++)for(int k=0;k<10;k++)
p[i,j,k] 中的 xyz 不就是ijk吗? 岂不是多此一举?如果是(2),那么我就无法对point进行操作了,难道必须要 static Space s ,类里都得是静态方法吗?要不每次new的1000个点都是初始值的.我觉得这应该不是什么问题吧,怎么突然从理论上脑子一片糊涂呢,请某个明白人当头棒喝.说两句明白话让我清醒清醒,大思路应该是什么样的?呵呵,多谢!
如果是(1),那么我Point p=new Point();后,给其xyz坐标赋值后,这个点有什么意义?如果和1000个点有所联系?
如果我遍历1000个点
Point[,,] p=new Point[10,10,10];
for(int i=0;i<10;i++)for(int j=0;j<10;j++)for(int k=0;k<10;k++)
p[i,j,k] 中的 xyz 不就是ijk吗? 岂不是多此一举?如果是(2),那么我就无法对point进行操作了,难道必须要 static Space s ,类里都得是静态方法吗?要不每次new的1000个点都是初始值的.我觉得这应该不是什么问题吧,怎么突然从理论上脑子一片糊涂呢,请某个明白人当头棒喝.说两句明白话让我清醒清醒,大思路应该是什么样的?呵呵,多谢!
解决方案 »
- C# window7 64位下 把窗口始终放在最前面怎么做?
- asp.net里数字+百分号的正则表达式应该怎么写额?
- 最小化的窗口 显示出来?(急~)
- dundas chart 数据量大,有滚动条时,如何向右滚动?
- 谁给解释下下边的语句什么意思
- statusbar中statuspanel.text属性不能修改问题??
- 使用ms.net2003,和其自带的水晶 报表,打包后在客户处安装,还需要水晶的别的注册码吗
- 请教, 在c# 中有没有办法直接把excel文件中的某几个sheet存为xml文件
- 如何得到绑定后datagrid中item值的个数?
- 用C#怎么做不用安装就可以在别人机器用的程序啊
- vs2005为何为提示未能找到程序集System.Net,急!
- C# mono 问题,请大家帮帮忙
i,j,k不是点的坐标啊,ijk只是你给这些点的编号而已。ijk最大值也就是(9,9,9)。
而你的三维坐标xyz应该可以范围很大吧。比如xyz可能是(-1,99,-3)这和ijk可没有什么必然联系。
两者结合起来也许正是你想要的结果
for(int i=0;i <10;i++)for(int j=0;j <10;j++)for(int k=0;k <10;k++)
对每一个p[i,j,k],在去设置它的坐标xyz等属性。
编写Space类时可以用列表或数组保存1000个点,访问其中的点的时候可以先访问Space对象,没有必要全部设计成Static
当然如果只有这么一个空间(有的时候会定义多个空间),也是可以设计成Static的。
对两点的连接以及其他处理完全可以在Space类中定义方法去处理。