iOS 隨機三角瓷磚布局演算法

2021-09-07 01:49:25 字數 2114 閱讀 9092

你已經看夠ios鑑於這些預設的正方形塊,整齊地顯示?

本篇給出乙個隨機演算法設計的三角布局的瓷磚和實施。

這樣的規則,並提出妥協隨機排列間。它看起來很凌亂,不會有乙個新事物。

重點是設計和實施,以實現布局演算法,能夠改變顏色或者加入。

布局生成效果例如以下:

核心演算法設計以及**實現例如以下:

//

// ********viewcontroller.m

// ********layout

//// created by 杜子兮(duzixi) on 14-8-24.

//#import "********viewcontroller.h"

#import "********.h"

#import #define padding 10

#define size 100

#define col (self.view.frame.size.width / size)

#define row (self.view.frame.size.height / size)

@inte***ce ********viewcontroller ()

@end

@implementation ********viewcontroller

- (void)viewdidload

// [self.view addsubview:view];

// step 2:在格仔中產生隨機點

int x = arc4random() % (size - padding * 2) + view.frame.origin.x + padding;

int y = arc4random() % (size - padding * 2) + view.frame.origin.y + padding;

cgpoint p = cgpointmake(x, y);

nsvalue *v = [nsvalue valuewithcgpoint:p];

[_randompoints addobject:v];

uiview *pview = [[uiview alloc] initwithframe:cgrectmake(p.x, p.y, 2, 2)];

pview.backgroundcolor = [uicolor bluecolor];

// [self.view addsubview:pview];

uilabel *label = [[uilabel alloc] initwithframe:cgrectmake(p.x, p.y, 50, 20)];

label.text = [nsstring stringwithformat:@"%lu",(unsigned long)[_randompoints count]];

// [self.view addsubview:label];}}

int k = 0;

for (int i = 0; i < row; i++) } } - (void)didreceivememorywarning @end

//// ********.h

// ********layout

//// created by 杜子兮(duzixi) on 14-8-24.

//#import @inte***ce ******** : nsobject

@property (nonatomic, assign) cgpoint p1;

@property (nonatomic, assign) cgpoint p2;

@property (nonatomic, assign) cgpoint p3;

@end

為了讓大家看清布局過程,**中保留了一些中間過程(凝視掉了)。

開啟凝視就可以看到格仔,隨機點等內容。

下一次的目標是將其改寫成uicollectionview的layout,請大家敬請期待

iOS 三角函式

角度轉弧度,弧度轉角度 弧度轉角度 define radians to degrees radians radians 180.0 m pi 角度轉弧度 define degrees to radians angle angle 180.0 m pi eg 計算三角形的三個點 cgfloat r 2...

楊輝三角演算法集錦

name 楊輝三角集錦 author goal00001111 date 27 11 08 19 04 description 分別使用了二維陣列,一維陣列,佇列,二項式公式,組合公式推論和遞迴方法等10種演算法 演算法思路詳見 注釋 注釋很詳細,呵呵 include include using n...

每日演算法 楊輝三角

給定乙個非負整數 numrows,生成楊輝三角的前 numrows 行。在楊輝三角中,每個數是它左上方和右上方的數的和。示例 輸入 5 輸出 1 1,1 1,2,1 1,3,3,1 1,4,6,4,1 解法一 遞迴。下面一行的m值是由上面一行n值決定的。比如下面一行的第i個元素m i 值是由上面一行...