找回密码
 立即注册

QQ登录

只需一步,快速开始

撸码
论坛元老   /  发表于:2015-6-4 11:08:00
11#

Chart3D可以弄出来,pointData模式

回复 10楼Alice的帖子

layout 选择PointData可以实现吧,我昨天试了下,谢谢

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
Alice
社区贡献组   /  发表于:2015-6-4 14:16:00
12#
回复 11楼撸码的帖子

你好。
很抱歉没有理解你的意思。
如果你是指绘制点并且使用Connected为true连接点的话,可以使用Chart3DPointSeries创建点,并设置Connected为true,即可将一条序列的点连接。
代码参考
  1.         C1.Win.C1Chart3D.Chart3DPointSeries series = new C1.Win.C1Chart3D.Chart3DPointSeries();
  2.             series.Connected = true;
  3.             C1.Win.C1Chart3D.Chart3DPoint p1 = new C1.Win.C1Chart3D.Chart3DPoint(0, 0, 0.2);
  4.             C1.Win.C1Chart3D.Chart3DPoint p2 = new C1.Win.C1Chart3D.Chart3DPoint(0, 0.4, 1);
  5.             C1.Win.C1Chart3D.Chart3DPoint p3 = new C1.Win.C1Chart3D.Chart3DPoint(0, 1, 0);
  6.             series.Points = new C1.Win.C1Chart3D.Chart3DPoint[] {p1,p2,p3 };
  7.             C1.Win.C1Chart3D.Chart3DDataSetPoint ds = new  C1.Win.C1Chart3D.Chart3DDataSetPoint();
  8.             ds.SeriesCollection.Add(series);
  9.             c1Chart3D1.ChartGroups[0].ChartData.Set = ds;
  10.             c1Chart3D1.ChartGroups[0].ChartType = C1.Win.C1Chart3D.Chart3DTypeEnum.Scatter;
  11.             this.c1Chart3D1.ChartGroups[0].ChartData.Layout = C1.Win.C1Chart3D.DataLayoutEnum.PointData;
复制代码
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
撸码
论坛元老   /  发表于:2015-6-4 16:31:00
13#
谢谢,这些代码我能编写的。。就是如何用代码实现前面那个图一样有多个折线。。比如当x=0时,对应的有一个折线,x=1时有一个折线。。一次类推下去,可以嘛,亲O(∩_∩)O~
回复 使用道具 举报
Alice
社区贡献组   /  发表于:2015-6-4 17:47:00
14#
回复 13楼撸码的帖子

你好。
ds.SeriesCollection是可以添加多个系列series的,一个series就是一个折线。
你可以根据需求添加多个C1.Win.C1Chart3D.Chart3DPointSeries 在里面。
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
撸码
论坛元老   /  发表于:2015-6-4 22:54:00
15#
回复 14楼Alice的帖子

这个我知道就是ds.SeriesCollection.Add(s1);ds.SeriesCollection.Add(s2);ds.SeriesCollection.Add(s3);.......可是假如我要实现100个折线呢呢。。该如何用循环来实现这100个折线呢?调试了一下午都没弄好。。气死我了~~~~(>_<)~~~~
回复 使用道具 举报
Alice
社区贡献组   /  发表于:2015-6-5 09:18:00
16#
回复 15楼撸码的帖子

你好。
你可以使用for循环将数据逐个添加进去,for循环100次控制添加100个序列,里面的点也可以使用for循环添加。添加的算法属于你的业务逻辑部分,需要自己去写算法,基本思路就是你可以写随机函数,或是使用其他合乎逻辑的方法。
代码参考:
  1.             C1.Win.C1Chart3D.Chart3DDataSetPoint ds = new C1.Win.C1Chart3D.Chart3DDataSetPoint();
  2.             for (int i = 0; i &lt; 100;i++ )
  3.             {
  4. //循环100次添加100个序列
  5.                 C1.Win.C1Chart3D.Chart3DPointSeries series = new C1.Win.C1Chart3D.Chart3DPointSeries();
  6.                 series.Points = new C1.Win.C1Chart3D.Chart3DPoint[pointcount];
  7.                 series.Connected = true;
  8.                 for (int p = 0; p &lt; pointcount; p++)
  9.                 {
  10. //这里给每个序列添加数据点
  11.                     series.Points[p] = new C1.Win.C1Chart3D.Chart3DPoint(x,y,z);
  12.                 }
  13.            
  14.                 ds.SeriesCollection.Add(series);
  15.             }
  16.             c1Chart3D1.ChartGroups[0].ChartData.Set = ds;
  17.             c1Chart3D1.ChartGroups[0].ChartType = C1.Win.C1Chart3D.Chart3DTypeEnum.Scatter;
  18.             this.c1Chart3D1.ChartGroups[0].ChartData.Layout = C1.Win.C1Chart3D.DataLayoutEnum.PointData;
复制代码
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
撸码
论坛元老   /  发表于:2015-6-5 09:45:00
17#
哈哈。。还是你厉害!我是用函数实现的!谢谢。。我也用了for循环了,代码和你差不多可能哪里有点问题没考虑吧。。真的很感谢你哈O(∩_∩)O~ 、、 被我问的那么累了吧
回复 使用道具 举报
撸码
论坛元老   /  发表于:2015-6-5 09:46:00
18#
修改了下你的代码效果不错,谢谢‘
private void SurfaceCharts_Load(object sender, EventArgs e)
        {
            C1.Win.C1Chart3D.Chart3DDataSetPoint ds = new C1.Win.C1Chart3D.Chart3DDataSetPoint();
            for (int i = 0; i &lt; 100; i++)
            {
                //循环100次添加100个序列
                C1.Win.C1Chart3D.Chart3DPointSeries series = new C1.Win.C1Chart3D.Chart3DPointSeries();
                series.Points = new C1.Win.C1Chart3D.Chart3DPoint[5];
                series.Connected = true;
                int y = 0;
                for (int p = 0; p &lt; 5; p++)
                {
                   int  z = rd.Next(1, 5);
                    
                    //这里给每个序列添加数据点
                    series.Points[p] = new C1.Win.C1Chart3D.Chart3DPoint(i, y, z);
                    y++;
                }

                ds.SeriesCollection.Add(series);
            }
            c1Chart3D1.ChartGroups[0].ChartData.Set = ds;
            c1Chart3D1.ChartGroups[0].ChartType = C1.Win.C1Chart3D.Chart3DTypeEnum.Scatter;
            this.c1Chart3D1.ChartGroups[0].ChartData.Layout = C1.Win.C1Chart3D.DataLayoutEnum.PointData;
回复 使用道具 举报
撸码
论坛元老   /  发表于:2015-6-5 09:50:00
19#
那么再问你一下,能否用WPF实现中的C1Chart3D控件实现上面的功能呢??我都不好意思问了。。嘿嘿
回复 使用道具 举报
Alice
社区贡献组   /  发表于:2015-6-5 14:01:00
20#
回复 19楼撸码的帖子

你好。
为了帮助你解决问题,请问,你是哪一点实现上有困难呢?
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部