免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
123下一页
最近访问板块 发新帖
查看: 12455 | 回复: 23
打印 上一主题 下一主题

MetaPost语言编写的赛马程序 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-12-25 17:26 |只看该作者 |倒序浏览
急求一段程序,题为赛马
要求四匹用四方框代替的赛马(编号为1,2,3,4)被五条横线间隔 ,从左向右跑,结果随即,结束显示结果,按间开始.

[ 本帖最后由 converse 于 2007-12-27 20:35 编辑 ]

论坛徽章:
3
2015年迎新春徽章
日期:2015-03-04 09:56:11数据库技术版块每日发帖之星
日期:2016-08-03 06:20:00数据库技术版块每日发帖之星
日期:2016-08-04 06:20:00
2 [报告]
发表于 2007-12-26 17:11 |只看该作者
开个价格吧,可能会有人有兴趣

论坛徽章:
0
3 [报告]
发表于 2007-12-27 17:28 |只看该作者
MetaPost语言 自娱自乐


#!/bin/sh

genmpost()
{

cat -  << EOF
def Drawhorses(expr ha,hb,hc,hd)=
begingroup
save i, line_s, line_e, line_w, line_h, line_hw;
pair line_s, line_e, line_h;
line_s:=(0,0); line_e:=(5cm,0);
line_w:=8mm;
line_h:=(0,2mm); line_hw:=4mm;

draw (-3,-3mm) withcolor white;
draw (53mm,35mm) withcolor white;


for i=0 step 1 until 4:
  draw (line_s -- line_e) shifted (0,line_w*i) withpen pencircle scaled 3pt ;
  numeric myshift;
  if i=0: myshift:=ha; else: if i=1: myshift:=hb; else: if i=2: myshift:=hc; else: myshift:=hd; fi; fi; fi;
  if i<=3:
     draw (line_h -- line_h shifted (line_hw,0) -- line_h shifted (line_hw, line_hw) -- line_h shifted(0, line_hw) -- cycle) shifted (myshift, i*line_w) withpen pencircle scaled 4pt;  
  fi;
endfor;

endgroup
enddef;

EOF

awk 'BEGIN{
      "date +%s" | getline myseed; srand(myseed);
      ha=0;hb=0;hc=0;hd=0; myend=46; i=1000;
      while(ha < myend && hb < myend && hc < myend && hd < myend )
      {
        ha+=rand()*2;
        hb+=rand()*2;
        hc+=rand()*2;
        hd+=rand()*2;
        printf("beginfig(%3d)\n",i++);
        printf("Drawhorses(%fmm,%fmm,%fmm,%fmm);\n",ha,hb,hc,hd);
        print "endfig;";
      }
      print "end;";
      exit;
    }'

}

genmpost > mytmpmposthorse.mp
mptopdf mytmpmposthorse.mp
convert -sampling-factor 1  mytmpmposthorse-[0-9]???.pdf horses.gif
rm mytmpmposthorse-[0-9]???.pdf
rm mytmpmposthorse.[0-9]???
rm mytmpmposthorse.mp


[ 本帖最后由 doctorjxd 于 2007-12-27 17:32 编辑 ]

论坛徽章:
0
4 [报告]
发表于 2007-12-27 17:47 |只看该作者
马儿跑的欢

        

        

[ 本帖最后由 doctorjxd 于 2007-12-27 17:49 编辑 ]

评分

参与人数 1可用积分 +3 收起 理由
win_hate + 3 精彩

查看全部评分

论坛徽章:
0
5 [报告]
发表于 2007-12-27 17:50 |只看该作者

论坛徽章:
0
6 [报告]
发表于 2007-12-27 17:56 |只看该作者

回复 #3 doctorjxd 的帖子

你太帅了,我找来找去 MetaPost 的教程只有英文的,看得头晕,以后就请教你了。

论坛徽章:
0
7 [报告]
发表于 2007-12-27 18:00 |只看该作者
原帖由 redspider 于 2007-12-27 17:56 发表
你太帅了,我找来找去 MetaPost 的教程只有英文的,看得头晕,以后就请教你了。


我也是才学不久,共同学习,呵呵。

我是看Metapost手册, 还有网上的example

MetaPostman.pdf

438.21 KB, 下载次数: 479

论坛徽章:
0
8 [报告]
发表于 2007-12-27 18:05 |只看该作者
原帖由 win_hate 于 2007-12-27 17:50 发表


谢谢版主鼓励。

论坛徽章:
0
9 [报告]
发表于 2007-12-27 20:27 |只看该作者
我想问一下 这东西 怎么运行啊?  在哪里运行?

论坛徽章:
0
10 [报告]
发表于 2007-12-27 20:32 |只看该作者
做个保留
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP