我正在做一个项目,我有一个时间表,用户可以单击一个月,然后在弹出窗口中查看该月获得的奖牌。现在,我想让程序安排奖牌图像(小的视觉圈)。应该这样安排,或者这样安排(我对一种特定的格式不是很特别,但我只是希望它们是对称的):

  • 1枚奖牌-一小圈
  • 2枚奖牌-两圈并排
  • 3枚奖牌-三个并排的圆圈,两个并排,一个在两个奖牌的中上位置
  • 4枚奖牌-四个圆圈像一个正方形
  • 5枚奖牌-一个正方形中有四个圆圈,中上角是第5个。

  • 我知道我可能不清楚我的要求,因此请在需要进一步说明时提一下。

    我需要逻辑来绘制奖牌的此图案或任何其他图案。我正在Objective-C中记录

    最佳答案

    您可以执行以下操作:

    int nrmedals; //number of medals
    CGPoint bottompos; //position of the lower left corner of the rectangle where you want to draw
    float padding; //space between medals
    float diameter; //diameter of the medals
    if (nrmedals%2==0) { //even
        for (int i=0; i<nrmedals; i+=2) {
            draw medal one at position (bottompos.x,bottompos.y+ i/2 * (diameter + padding));
            draw medal two at position (bottompos.x+diameter+padding ,bottompos.y + i/2 * (diameter + padding));
    
        }
    
    }else {//odd
        for (int i=0; i<nrmedals-1; i+=2) {
            draw medal one at position (bottompos.x,bottompos.y+ i/2 * (diameter + padding));
            draw medal two at position (bottompos.x+diameter+padding ,bottompos.y + i/2 * (diameter + padding));
    
        }
    draw odd medal at position (bottompos.x +diameter/2+padding/2 ,bottompos.y+diameter * (nrmedals-1)/2 +padding);
    }
    

    这是基本思想(当然,您可以将“2”替换为变量,而不是每行2枚奖牌)

    一些计算积分的数学运算可能不正确

    关于iphone - 动态排列图案中的图像-iOS,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13766916/

    10-15 06:42