举例来说吧.我在三维坐标中有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.   


    i,j,k不是点的坐标啊,ijk只是你给这些点的编号而已。ijk最大值也就是(9,9,9)。
    而你的三维坐标xyz应该可以范围很大吧。比如xyz可能是(-1,99,-3)这和ijk可没有什么必然联系。
      

  2.   

    你为什么不把Point和Space都实现了呢?
    两者结合起来也许正是你想要的结果
      

  3.   

    楼主还是需要自定义Point类。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等属性。
      

  4.   

    至少要抽象出point类,这是整个坐标系的基础,至于1000个点的坐标系可以视需要实现
      

  5.   

    三维 去codeproject里面搜一下GDI+
      

  6.   

    ijk与xyz的关系很清楚的,lz清醒的时候会发现的。
    编写Space类时可以用列表或数组保存1000个点,访问其中的点的时候可以先访问Space对象,没有必要全部设计成Static
    当然如果只有这么一个空间(有的时候会定义多个空间),也是可以设计成Static的。
    对两点的连接以及其他处理完全可以在Space类中定义方法去处理。