湖濱散記部落格的樹心幽徑[login][主頁]
360:segX.c綠有道

http://www.kmvs.km.edu.tw/lf/gallery/70/segxGreen.jpg

alt

//g++  `Magick++-config --cxxflags --cppflags` -I/usr/local/include/ImageMagick-7  segx.c `Magick++-config --ldflags --libs`  -L/usr/local/zlib/lib -lz
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <math.h>
#include <Magick++.h>
using namespace Magick;

void draw3(int ax,int ay,int bx,int by,int cx,int cy,int dx,int dy,Image *pim){
pim->strokeColor("green");
int px=(ax+bx)/2;
int py=(ay+by)/2;
pim->draw(DrawableLine(ax,ay,px,py));

int qx=(ax+cx)/2;
int qy=(ay+cy)/2;
pim->draw(DrawableLine(px,py,qx,qy));

int rx=(bx+cx)/2;
int ry=(by+cy)/2;
pim->draw(DrawableLine(qx,qy,rx,ry));

}

void drawA(int L,int ox,int oy,int w,int h,Image *pim)
{
draw3(ox+w*2/3,oy+h,ox,oy+h,ox,oy+h*1/3,ox+w*2/3,oy+h*1/3,pim);
draw3(ox,oy+h*2/3,ox,oy,ox+w*2/3,oy,ox+w*2/3,oy+h*2/3,pim);
draw3(ox+w*1/3,oy,ox+w,oy,ox+w,oy+h*2/3,ox+w*1/3,oy+h*2/3,pim);
draw3(ox+w,oy+h*1/3,ox+w,oy+h,ox+w*1/3,oy+h,ox+w*1/3,oy+h*1/3,pim);

if (L<1) {
    drawA(L+1,ox+w/3,oy+h/3,w/3,h/3,pim);
    drawA(L+1,ox+w/3,oy,w/3,h/3,pim);
    drawA(L+1,ox,oy+h/3,w/3,h/3,pim);
    drawA(L+1,ox+w/3,oy+h*2/3,w/3,h/3,pim);
    drawA(L+1,ox+w*2/3,oy+h/3,w/3,h/3,pim);
    }
}

void drawX(int L,int ox,int oy,int w,int h,Image *pim)
{
if (L==0) {
    drawA(0,ox,oy,w,h,pim); return;
    }
int dw,dh;
dw=w/2; dh=h/2; drawX(L-1,ox+dw,oy+dh,w/2,h/2,pim);
dw=0; dh=0; drawX(L-1,ox+dw,oy+dh,w/2,h/2,pim);
dw=w/2; dh=0; drawX(L-1,ox+dw,oy+dh,w/2,h/2,pim);
dw=0; dh=h/2; drawX(L-1,ox+dw,oy+dh,w/2,h/2,pim);
}

int main()
{
int w=2048/35;
int h=1536/35;
Image im( Geometry(w*35, h*35), Color("black"));
im.draw(DrawableStrokeColor(Color("black")));
im.strokeWidth(2);
drawX(4,0,0,35*w,35*h,&im);
char st[60];
sprintf(st,"w=%d h=%d",w,h);
im.font("/usr/share/fonts/truetype/arphic/uming.ttc");
im.fontPointsize(32);
im.draw(DrawableText(32, 32, st));
im.write("segx.jpg");
}


select id,article_id,topic,text from lt_articles_text where article_id =360; ok. update lt_articles set num_reads=num_reads +1 where id=360; ok.