| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 342 人关注过本帖
标题:请教前辈一个关于算法的问题、。。!
取消只看楼主 加入收藏
yaosi
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2011-5-4
结帖率:0
收藏
 问题点数:0 回复次数:0 
请教前辈一个关于算法的问题、。。!
int rowNumber = 10, colNumber = 10;
  int[,]a=new int [rowNumber,colNumber];
  double cellsize=1;
  int lineID = 1,col,j,row;
  double x1 = 1, y1 = 2;
  double x2 = 8, y2 = 6;
  double k = (y2-y1)/(x2-x1),b = y1-x1*k;  
  int col1=(int)(x1/cellsize),col2=(int)(x2/cellsize);
  int row1=(int)(y1/cellsize),row2=(int)(y2/cellsize);
  if (k > 1 || k < -1)
  {  
  for (col= col1; col < col2;col++ )
  {
  double y0 =col*k+b;
   
  double x = col+1;
  double y = x*k+b;
  double p = Math.Ceiling(y-y0);
  for(j=0;j<p;j++)
  {
  int yz = (int)(y0);
  a[yz, col] = lineID;
  Console.WriteLine("a[{0},{1}]={2}", yz,col, a[yz, col]);

  y0++;
  }
   
   
  }
   
  }
  else
  {
  for (row = row1; row < row2;row++ )
  {
  double x0 =(row-b)/k;
   
  double y = row+1;
  double x = (y-b)/k;
  double p = Math.Ceiling(x - x0);
   
  for(j=0;j<p;j++)
  {
  int xz = (int)(x0);
  a[row, xz] = lineID;
  Console.WriteLine("a[{0},{1}]={2}", row,xz, a[row,xz]);
 ;
  x0++;
   
   
  }
   
   
  }
   
  }



程序定义了一个10乘10的数组。。想要看看从点(1,2)到点(8,6)形成的线段穿过了哪些“格子”。。然后给穿过的这些格子赋值lineID。。。。每次运行出来结果都不对。好像差了几个格子。请各位前辈指教一下。。。很着急很着急!!!非常感谢!!!
搜索更多相关主题的帖子: double 
2011-05-05 19:39
快速回复:请教前辈一个关于算法的问题、。。!
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.030865 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved