请选择 进入手机版 | 继续访问电脑版
查看: 17669|回复: 36

[综合] CADrawView绘图Demo

[复制链接]
最佳答案
0 
pl01665077 发表于 2015-12-9 11:39:32 | 显示全部楼层 |阅读模式
本帖最后由 pl01665077 于 2015-12-14 14:06 编辑

由于CrossApp是在Cocos2d-x的基础上修改而来的,所以CrossApp也可以调用底层的OpenGL ES 2.0进行绘图。
在CorssApp 1.2.0中发现了CADrawView类,尝试了一下并写了一个Demo,最后效果如下:
QQ截图20151209112545.jpg

附上测试Demo,只要把下面代码拷贝到新建工程的FirstViewController::viewDidLoad()函数下即可。

  1.         //画点
  2.         CADrawView* drawDot = CADrawView::create();
  3.         drawDot->setCenter(DRect(winSize.width / 2, 200, 300, 300));
  4.         drawDot->drawDot(DPoint(0, 0), 50, ccc4f(0.9, 0, 0, 1));
  5.         this->getView()->addSubview(drawDot);

  6.         //画线
  7.         CADrawView* drawSegment = CADrawView::create();
  8.         drawSegment->setCenter(DRect(winSize.width / 2, 400, 300, 300));
  9.         drawSegment->drawSegment(DPoint(0, 0), DPoint(100, 0),10, ccc4f(0.9, 0, 0, 1));
  10.         this->getView()->addSubview(drawSegment);

  11.         CADrawView* drawPolygon[2];
  12.         //画多边形之画圆
  13.         CCPoint cir[720];
  14.         for (int i = 0; i<720; i++)
  15.         {
  16.                 float x = cosf(i * M_PI / 180.f) * 100;
  17.                 float y = sinf(i * M_PI / 180.f) * 100;

  18.                 cir[i] = CADipPoint(x, y);
  19.         }
  20.         drawPolygon[0] = CADrawView::create();
  21.         drawPolygon[0]->setCenter(DRect(winSize.width / 2, 600, 200, 200));
  22.         //参数:点的位置数组,数组的个数,填充的颜色(绿色),边框大小,边框颜色(红色)
  23.         drawPolygon[0]->drawPolygon(cir, 720, ccc4f(0, 1, 0, 1), 2, ccc4f(1, 0, 0, 1));
  24.         this->getView()->addSubview(drawPolygon[0]);

  25.         //画多边形之画矩形
  26.         CCPoint rect[400];
  27.         float x;
  28.         float y;
  29.         //描边
  30.         for (int i = 0; i < 400; i++)
  31.         {
  32.                 if (i<100)
  33.                 {
  34.                         x = i-0;
  35.                         y = 0;
  36.                 }
  37.                 else if (i>=100 && i<200)
  38.                 {
  39.                         x = 100;
  40.                         y = i-100;
  41.                 }
  42.                 else if (i >= 200 && i<300)
  43.                 {
  44.                         x = i-200;
  45.                         y = 100;
  46.                 }
  47.                 else
  48.                 {
  49.                         x = 0;
  50.                         y = i - 300;
  51.                 }

  52.                 rect[i] = CADipPoint(x, y);
  53.         }
  54.         drawPolygon[1] = CADrawView::create();
  55.         drawPolygon[1]->setCenter(DRect(winSize.width / 2, 850, 200, 200));
  56.         //参数:点的位置数组,数组的个数,填充的颜色(绿色),边框大小,边框颜色(红色)
  57.         drawPolygon[1]->drawPolygon(rect, 400, ccc4f(0, 1, 0, 1), 1, ccc4f(1, 0, 0, 1));
  58.         this->getView()->addSubview(drawPolygon[1]);
复制代码


另附上Demo工程
游客,如果您要查看本帖隐藏内容请回复

最佳答案
0 
笑月嘟 发表于 2015-12-11 14:54:46 | 显示全部楼层
看起来不错
最佳答案
0 
笑月嘟 发表于 2015-12-11 14:54:57 | 显示全部楼层
看起来不错
最佳答案
0 
kuangjiaolong 发表于 2015-12-11 18:45:13 | 显示全部楼层
另附上Demo工程
最佳答案
0 
arvin 发表于 2015-12-11 23:36:41 | 显示全部楼层
多谢楼主分享,正好有这个需要
最佳答案
0 
fantasy5555 发表于 2015-12-12 05:00:57 | 显示全部楼层
感谢楼主辛苦发帖~~~
最佳答案
0 
hlj8866878 发表于 2015-12-19 21:06:16 | 显示全部楼层
fwerwrwefrsdffsadfasf
最佳答案
0 
yiyi7788999 发表于 2015-12-21 16:40:00 | 显示全部楼层
kkkkkkkkkkkkkkkkkkk
最佳答案
0 
SkyMing 发表于 2015-12-24 11:52:24 | 显示全部楼层
不错的尝试!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

推荐阅读 More>

© 2001-2015 9秒社团

合作伙伴

公司简介 | 联系方式
COPYRIGHT©2015 ZHONGQINGLONGTU NETWORK CO.LTD ALL RIGHTS RESERVED.ICP备11023195号-4
北京中清龙图网络技术有限公司
返回顶部 返回列表