• 5288阅读
  • 7回复

[提问]qt 写的 多个正六边形的坐标怎么转换为数组下标 [复制链接]

上一主题 下一主题
离线lgwky
 
只看楼主 倒序阅读 楼主  发表于: 2012-05-21
qt 写的 多个正六边形的坐标怎么转换为数组下标
离线ppdayz

只看该作者 1楼 发表于: 2012-05-21
回 楼主(lgwky) 的帖子
举个例子?
离线lgwky
只看该作者 2楼 发表于: 2012-05-21
是的 四边形的很好写 六边形的我不知道怎么弄了 谢谢
离线lgwky
只看该作者 3楼 发表于: 2012-05-21
发代码给我看也行
离线roywillow

只看该作者 4楼 发表于: 2012-05-21
回 3楼(lgwky) 的帖子
完全没理解什么意思……
专业维修核潜艇,回收二手航母、二手航天飞机,大修核反应堆,拆洗导弹发动机更换机油,无人侦察机手动挡改自动,航天飞机保养换三滤,飞碟外太空年检 ,各型号导弹加装迎宾踏板,高空作业擦洗卫星表面除尘、打蜡及抛光,东风全系列巡航导弹。并提供原子对撞机。量大从优,有正规发票。
离线lgwky
只看该作者 5楼 发表于: 2012-05-21


在正六边形里 event->x()  event->y()   转换为数组下标
离线lgwky
只看该作者 6楼 发表于: 2012-05-21
#define SIZE 12.5
#define HOR 21
#define VER 13

for(int j=0;j<=VER;j++)
    {
        if(j % 2 ==0)
        {
            for(int i =1 ; i <= HOR;i++)
            {
                QPointF points[6];
                points[0]=QPointF(2*SIZE*i,j*3*SIZE*qSqrt(3)/3);
                points[1]=QPointF(SIZE*(2*i+1),(j*3+1)*SIZE*qSqrt(3)/3);
                points[2]=QPointF(SIZE*(2*i+1),(j+1)*3*SIZE*qSqrt(3)/3);
                points[3]=QPointF(2*SIZE*i,((j+1)*3+1)*SIZE*qSqrt(3)/3);
                points[4]=QPointF(SIZE*(2*i-1),(j+1)*3*SIZE*qSqrt(3)/3);
                points[5]=QPointF(SIZE*(2*i-1),(j*3+1)*SIZE*qSqrt(3)/3);

                painter.drawPolygon(points,6);

            }
        }
        else
        {
            for(int i =1 ; i <= HOR;i++)
            {
                QPointF points[6];
                points[0]=QPointF((2*i-1)*SIZE, j*3*SIZE*qSqrt(3)/3);
                points[1]=QPointF(SIZE*2*i,(j*3+1)*SIZE*qSqrt(3)/3);
                points[2]=QPointF(SIZE*2*i,(j+1)*3*SIZE*qSqrt(3)/3);
                points[3]=QPointF((2*i-1)*SIZE,((j+1)*3+1)*SIZE*qSqrt(3)/3);
                points[4]=QPointF(SIZE*(2*i-2),(j+1)*3*SIZE*qSqrt(3)/3);
                points[5]=QPointF(SIZE*(2*i-2),(j*3+1)*SIZE*qSqrt(3)/3);

                painter.drawPolygon(points,6);

            }
        }
    }
画六边形
离线roywillow

只看该作者 7楼 发表于: 2012-05-21
那就看你的数学功底了,这个应该是得计算的吧
专业维修核潜艇,回收二手航母、二手航天飞机,大修核反应堆,拆洗导弹发动机更换机油,无人侦察机手动挡改自动,航天飞机保养换三滤,飞碟外太空年检 ,各型号导弹加装迎宾踏板,高空作业擦洗卫星表面除尘、打蜡及抛光,东风全系列巡航导弹。并提供原子对撞机。量大从优,有正规发票。
快速回复
限100 字节
 
上一个 下一个