Quartz2D繪制線段、三角形、四邊形、圓形等圖形的代碼

線段代碼展示:

代碼:

- (void)drawRect:(CGRect)rect
{
    CGContextRef line = UIGraphicsGetCurrentContext(); // 不需要* ,獲得圖形上下文

    CGContextMoveToPoint(line, 50, 50); // 設(shè)置線段起點

    CGContextAddLineToPoint(line, 250, 50); // 設(shè)置線段重點

    CGContextSetRGBStrokeColor(line, 0, 1.0, 0, 1.0); // 設(shè)置險段的顏色

    CGContextSetLineWidth(line, 10); // 設(shè)置線斷的寬度

    CGContextSetLineJoin(line, kCGLineJoinRound); // 設(shè)置線斷起點和終點的樣式都為圓角

    CGContextSetLineCap(line, kCGLineCapRound); // 設(shè)置險段的轉(zhuǎn)角樣式為圓角

    CGContextStrokePath(line); // 渲染,繪制出一條空心的線斷

    CGContextRef lineOne = UIGraphicsGetCurrentContext(); // 設(shè)置第二條線

    CGContextMoveToPoint(lineOne, 50, 150); // 設(shè)置線段起點

    CGContextAddLineToPoint(lineOne, 200, 20); // 設(shè)置線段終點

    CGContextSetRGBStrokeColor(lineOne, 1.0, 0, 0, 1.0); // 設(shè)置線斷顏色

    CGContextSetLineWidth(lineOne, 10); // 設(shè)置線段寬度

    CGContextStrokePath(lineOne); // 渲染,繪制出一條空心的線斷
}
@end

三角形代碼展示:

代碼:

- (void)drawRect:(CGRect)rect
{
    CGContextRef triangle = UIGraphicsGetCurrentContext(); // 獲得圖形上下文

    CGContextMoveToPoint(triangle, 150, 40); // 設(shè)置起點

    CGContextAddLineToPoint(triangle, 60, 200); // 設(shè)置第二個點

    CGContextAddLineToPoint(triangle,240, 200); // 設(shè)置第三個點

    CGContextClosePath(triangle); // 關(guān)閉起點和終點

    CGContextStrokePath(triangle); // 渲染,繪制出三角形
}
@end

實心四邊形、空心四邊形,代碼展示:

代碼:

- (void)drawRect:(CGRect)rect
{
    CGContextRef quadrilateral = UIGraphicsGetCurrentContext(); // 獲得圖形上下文

    CGContextAddRect(quadrilateral, CGRectMake(45, 45, 200, 200)); // 設(shè)置起始坐標(biāo),以及長和寬

    CGContextSetRGBFillColor(quadrilateral, 1.0, 1.0, 0, 1); // 設(shè)置實心顏色

    //CGContextSetRGBStrokeColor(quadrilateral, 1.0, 1.0, 0, 1.0); // 設(shè)置空心顏色

    //CGContextStrokePath(quadrilateral); // 渲染空心,繪制四邊形 

    CGContextFillPath(quadrilateral); // 渲染實心,繪制出四邊形 
}
@end

實心圓形、空心圓形、橢圓,代碼展示:

空心圓形代碼:

- (void)drawRect:(CGRect)rect
{
    CGContextRef round = UIGraphicsGetCurrentContext(); // 獲取上下文

    CGContextAddEllipseInRect(round, CGRectMake(50, 50, 100, 100)); // 畫圓

    CGContextSetRGBStrokeColor(round, 0, 0, 0, 1);// 設(shè)置顏色

    CGContextStrokePath(round); // 渲染,將空心圓形畫出
}
@end

橢圓代碼:

- (void)drawRect:(CGRect)rect
{
    CGContextRef circular = UIGraphicsGetCurrentContext(); // 獲取上下文

    CGContextAddEllipseInRect(circular, CGRectMake(100, 100, 100, 100)); // 畫圓(100,100 變成不等大的就是橢圓,這里不再貼重復(fù)代碼)

    CGContextSetRGBFillColor(circular, 1.0, 0, 1.0, 1);// 設(shè)置顏色

    CGContextFillPath(circular); // 渲染,將實心圓形畫出
}
@end

實心圓弧、空心圓弧、圓環(huán),代碼展示:

實心圓?。?/p>

- (void)drawRect:(CGRect)rect
{
    CGContextRef arc = UIGraphicsGetCurrentContext(); // 獲取上下文 

    CGContextMoveToPoint(arc, 150, 150); // 畫線

    CGContextAddLineToPoint(arc, 150, 150); // 畫線

    CGContextAddArc(arc, 150, 150, 100, M_PI_2, M_PI, 0); // (150,150)圓心 (100)半徑 (M_PI_2) 弧度開始的大小 (M_PI) 弧度結(jié)束的大小 (0,1)順時針, 逆時針

    CGContextClosePath(arc); // 關(guān)閉路徑

    [[UIColor purpleColor]set]; // 設(shè)置顏色

    CGContextFillPath(arc); // 3.渲染( Fill 改成 Stroke 變成空心,不重復(fù)貼代碼) 
}
@end

環(huán)形代碼:

- (void)drawRect:(CGRect)rect
{
    CGContextRef annular = UIGraphicsGetCurrentContext();

    CGContextAddArc(annular, 100, 100, 50, 1, 20, 0);

    CGContextSetLineWidth(annular, 10);

    [[UIColor greenColor]set];

    CGContextStrokePath(annular);
}
@end
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 圖形包括基本的矩形、圓形、橢圓、三角形、多邊形,也包括稍微復(fù)雜一點的愛心、鉆石、陰陽八卦等。當(dāng)然有一些需要用到CS...
    凡凡的小web閱讀 1,031評論 0 2
  • 看完之前兩篇介紹基礎(chǔ)的文章后,是不是感覺CAD沒有那么難了?;蛘哒f你感覺到更難了?這篇文章開始,我們正式開始用CA...
    Lyu_Arch閱讀 2,260評論 0 0
  • Quartz2D 簡介 Quartz2D是二維(平面)的繪圖引擎(經(jīng)包裝的函數(shù)庫,方便開發(fā)者使用。也就是說蘋果幫我...
    iOS_Cqlee閱讀 675評論 0 2
  • 裝 我的茶杯里裝了大半杯的水 真的 隨著無法達到100度的開水的沖泡 落下來的安全著陸 不曾落下的茶葉被一口墜毀 ...
    無名之徒閱讀 186評論 0 0
  • 文/張春勇 不止一次想過忘記自己 像一塊冰,褪去光滑 退進草叢 退進泥土 追上一支奔赴大海的支流 我不會是太陽,永...
    Z無尾魚閱讀 277評論 0 0

友情鏈接更多精彩內(nèi)容