CSGL控件与点云数据的问题

超级格古达 2015-01-22 11:30:26

今天再做不出来就OVER了 。
一个星期以前我BOSS给我一个txt。里面是这样结构的一些数据
{5.39747624251024|0|<(2005,258)(4619,0)(4622,0)(4624,0)(4632,0)(4623,0)(4630,0)(4631,0)(4626,0)(4626,0)(4631,0)(4645,0)(4632,0)(4619,0)(4619,0)(4612,0)(4626,0)(4640,0)(4644,0)(4642,0)(4637,0)(4648,0)(4645,0)(4640,0)(4642,0)(4653,0)(4651,0)(4655,0)(4658,0)(4650,0)(4644,0)(4650,0)(4645,0)(4633,0)(4629,0)(4645,0)(14960,0)(14504,0)(14166,0)(13737,0)(13362,0)(13035,0)(12708,0)(12391,0)(12116,0)(11837,0)(11543,0)(11283,0)(11017,0)(10778,0)(10529,0)(10310,0)(10070,0)(9870,0)(9652,0)(9448,0)(9250,0)(9065,0)(8891,0)(8704,0)(8518,0)(8357,0)(8195,0)(8032,0)(7878,0)(7715,0)(7553,0)(7427,0)(7328,0)(7235,0)(7106,0)(6976,0)(6855,0)(6729,0)(6602,0)(6493,0)(6388,0)(6262,0)(6169,0)(6051,0)(5931,0)(5838,0)(5737,0)(5640,0)(5545,0)(5451,0)(5359,0)(5255,0)(5171,0)(5080,0)(4997,0)(4903,0)(4819,0)(4724,0)(4642,0)(4572,0)(4495,0)(4429,0)(4354,0)(4263,0)(4196,0)(4122,0)(4047,0)(3977,0)(3906,0)(3836,0)(3764,0)(3699,0)(3625,0)(3563,0)(3496,0)(3441,0)(3377,0)(3308,0)(3249,0)(3186,0)(3125,0)(3067,0)(3005,0)(2945,0)(2885,0)(2826,0)(2772,0)(2721,0)(2658,0)(2585,0)(2477,0)(2391,0)(2339,0)(2288,0)(2224,0)(2184,0)(2124,0)(2076,0)(4608,0)(2025,0)(2010,0)(1970,0)(1922,0)(1871,0)(1822,0)(1774,0)(1725,0)(1675,0)(1624,0)(1577,0)(1532,0)(1482,0)(1432,0)(1389,0)(1337,0)(1294,0)(1247,0)(1199,0)(1155,0)(1107,0)(1063,0)(1020,0)(973,0)(928,0)(883,0)(839,0)(794,0)(748,0)(703,0)(660,0)(614,0)(570,0)(527,0)(482,0)(438,0)(394,0)(350,0)(307,0)(263,0)(219,0)(175,0)(131,0)(87,0)(44,0)(0,0)>}
{z坐标|中间的不知道是什么|<(x,y),()()()()()()()''''''''''>}
然后让我用OpenGL 画出来,我了解了一下 ,c#没有 OpenGL 只有CSGL 然后我就学了一下,
现在我想问 怎么把这些数据都画出来啊,拜托了 为了小弟的饭碗。
...全文
147 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
本拉灯 2015-01-22
  • 打赏
  • 举报
回复
http://www.cnblogs.com/hanyonglu/archive/2012/06/12/2546581.html http://download.csdn.net/detail/nnslu/632550#comment http://blog.sina.com.cn/s/blog_4b94ff130100evua.html 只要懂的搜索,东西就有一坨一坨的最怕,连这个百度的都不会用的人。只能等着炒鱿鱼了
於黾 2015-01-22
  • 打赏
  • 举报
回复
那么你到底研究到哪一步了 如果你研究了CSGL之后,还是不会让它显示任何一个点,那么往下就没法沟通了 或者你仅仅是不知道如何将上面一大堆字符串解析成Point集合?
超级格古达 2015-01-22
  • 打赏
  • 举报
回复
引用 5 楼 Z65443344 的回复:
晕死 你要画3d图像,怎么能用控制台程序 放了一堆代码,一共2句注释,还都是其中某个语句的功能,整体描述一句都没有,看不懂你到底想干啥
整体情况是这样的: 我BOSS给我一个txt文档里面是一些数据 我用三个方法把这些数据提取出来放到3个list<double>中 然后我在glDraw()方法汇总调用这些方法得到xyz 我循环遍历这三个队列然后提取数据 用glVertix3d方法把这些点一个个的画出来。 现在我画出来了有几个疑问 1我不知道画图需要哪几个必要的方法,先调用哪个方法再调用那个方法这些方法是做什么的。 2用哪一个方法画点我也不清楚,因为完全没有帮助文档,我找了个遍(中文的)我上面用的glVertix3d我也不知道对不对 3模式 我知道 GL.glBegin(GL_TRIANGLES);是画三角形 GL_QUADS是画四边形 更多的顶点是GL_POLYGON 那么什么模式是用来画我要的3D点云呢 ?这个点云最后画出来是一个汽车二外部轮廓(外廓) 最后 因为我的数据里面都是几百上千的整数 而它需要的是double类型的数据 但是数据结构的第一个点Z轴 反而是一个个位数的小数。现在我晕了我不知道该把这些整数怎么办了。是都除以10000?还是有其他的处理方式? 我问了很多人 基本没人搭理我。大哥,靠你了!
超级格古达 2015-01-22
  • 打赏
  • 举报
回复
引用 5 楼 Z65443344 的回复:
晕死 你要画3d图像,怎么能用控制台程序 放了一堆代码,一共2句注释,还都是其中某个语句的功能,整体描述一句都没有,看不懂你到底想干啥
我的控制台程序是测试我自己写的格式化txt文件的方法的 我那个for循环是通过循环把所有的点都画出来 我以为这样可以看上去像是个3d图形的 结果没有显示
超级格古达 2015-01-22
  • 打赏
  • 举报
回复
引用 2 楼 wyd1520 的回复:
http://www.cnblogs.com/hanyonglu/archive/2012/06/12/2546581.html http://download.csdn.net/detail/nnslu/632550#comment http://blog.sina.com.cn/s/blog_4b94ff130100evua.html 只要懂的搜索,东西就有一坨一坨的最怕,连这个百度的都不会用的人。只能等着炒鱿鱼了
谢谢你给的链接 我在网上搜不到呢怎么 那个无名指的我看了 没有说怎么用啊 我要画的是很多很多点
於黾 2015-01-22
  • 打赏
  • 举报
回复
晕死 你要画3d图像,怎么能用控制台程序 放了一堆代码,一共2句注释,还都是其中某个语句的功能,整体描述一句都没有,看不懂你到底想干啥
超级格古达 2015-01-22
  • 打赏
  • 举报
回复
电脑太差劲了
超级格古达 2015-01-22
  • 打赏
  • 举报
回复
引用 1 楼 Z65443344 的回复:
那么你到底研究到哪一步了
如果你研究了CSGL之后,还是不会让它显示任何一个点,那么往下就没法沟通了
或者你仅仅是不知道如何将上面一大堆字符串解析成Point集合?

我已经把上面的数据点格式好了 也已经做好了GL.glVertix3d(double,double,double);
但是现在还是显示不出来。我上代码
GetSJ sj = new GetSJ(); //初始化一个类
List<double> x = new List<double>();
List<double> y = new List<double>();
List<double> z = new List<double>();
string allsz = File.ReadAllText("04-05-50LMS_L___04-06-29.txt");//使用File类取得文件里的字符串 以后这里要改为从数据库取得数据
string[] first = sj.getALLSZ(allsz);
GL.glClear(GL.GL_COLOR_BUFFER_BIT | GL.GL_DEPTH_BUFFER_BIT); // 清除屏幕及深度缓存
GL.glLoadIdentity();
GL.glTranslatef(0f, 0f, -6f);
GL.glBegin(GL.GL_POINTS);
z = sj.getZZ(first);
for (int i = 0; i < first.Length; i++)
{

x = sj.getX(first[i]);
y = sj.getY(first[i]);
for (int l = 0; l < x.Count; l++)
{
GL.glVertex3d(x[l],y[l],z[i]);
//MessageBox.Show(x[l] + " " + y[l] + " " + z[i] + " ");

}
}
GL.glEnd();

然后这是我用控制台输出的X
这电脑在这里打字太慢 图片也上传不上来 打字跳字
方法没有问题

8,832

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 组件/控件开发
社区管理员
  • 组件/控件开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧