zoukankan      html  css  js  c++  java
  • [BCB] C++ BUILDER 绘图 随机生成图形

    由于老师要求要实现一个填充算法,而每次填充都需要一个源图形【不规则】,用mspaint自己画太麻烦,于是打算自己动手随机生成。

    这里用的是 Polygen()函数,但是注意首尾相接,另外,为了保证规则点,所以采用的是按顺序随机生成点,类似时钟上的刻度分布。

    void RandomRect(TCanvas *c,int halfvertexs,int weight,int height)
    {
        RandSeed=Now();
        randomize();
    
        TPoint *v;
        v = (TPoint*)malloc(sizeof(TPoint) * (halfVertexs * 2 + 1));
    
        c->Pen->Color = clBlack;
        //generate the point randomly
        for (int i = 0; i < halfVertexs ; i++)
              v[i] = Point(random(width / halfVertexs) + width / halfVertexs * i,random(height / 2));
        for (int i = halfVertexs; i < halfVertexs * 2; i++)
              v[i] = Point(width + random(width / halfVertexs) - ( width / halfVertexs) 
                           * (i - halfVertexs + 1),random(height / 2) + height / 2);
        v[halfVertexs * 2] = Point(v[0].x,v[0].y);
        for(int i = 0;i < halfVertexs * 2;i++)
              c->Pixels[v[i].x][v[i].y] = clBlack;
        c->Polygon(v,halfVertexs * 2);
    }
    

      

      这样,一个随机生成不规则图形(仮)的函数就完成了

  • 相关阅读:
    BZOJ4569 : [Scoi2016]萌萌哒
    2016浙江省赛过山车记
    BZOJ4546(原) : 三元组
    BZOJ4539 : [Hnoi2016]树
    BZOJ4537 : [Hnoi2016]最小公倍数
    BZOJ4538 : [Hnoi2016]网络
    BZOJ4527 : K-D-Sequence
    BZOJ4504 : K个串
    BZOJ4471 : 随机数生成器Ⅱ
    BZOJ3659 : Which Dreamed It
  • 原文地址:https://www.cnblogs.com/maikaze/p/4942748.html
Copyright © 2011-2022 走看看