Asymptote

Asymptote: the Vector Graphics Language
Asymptote 是一门矢量图形编程语言,同时是一个矢量作图工具。
Asymptote目前缺少IDE、自动代码提示等生态,因此为了方便画图,可以自己做一个简易IDE。

inotifywait

使用inotifywait实现一个功能:当.asy文件被更改时,自动调用Asymptote对.asy进行读取然后作图生成.eps文件,实现及时画图。
Windows没有类似Linux自带inotifywait,因此使用这个开源代码进行编译使用。
https://github.com/thekid/inotify-win

Windows平台,PowerShell脚本如下:

$fname='1'
function create_empty_eps{# create an empty .eps file for evnice to open(auto-reload).echo '%!PS-Adobe-3.0 EPSF-3.0\n' > "$fname.eps"
}
create_empty_eps# start SumatraPDF.
# omit `.exe` of `SumatraPDF.exe` for return process info
$sumatra_app = Start-Process SumatraPDF -passthru
echo $sumatra_appfunction run_asy{&'C:\Program Files\Asymptote\asy.exe' "$fname.asy"
}run_asy
# trap ctrl+c for killing SumatraPDF process.
try {while($true){inotifywait.exe -e modify "$fname.asy"run_asyIf ($LastExitCode -eq "1") {create_empty_eps}}
}
finally {$sumatra_app | Stop-Process
}

Linux平台,bash脚本如下:

fname='1';
create_empty_eps(){# create an empty .eps file for evnice to open(auto-reload).echo '%!PS-Adobe-3.0 EPSF-3.0\n' >| ${fname}.eps;
}
create_empty_eps;# start evince in background.
evince ${fname}.eps &;
evince_pid=$!;
# trap ctrl+c for killing background evnice process.
is_ctrl_c=0;
function ctrl_c() {echo "kill ${evince_pid}";kill -9 ${evince_pid};is_ctrl_c=1;
}
trap ctrl_c INT;asy ${fname}.asy;
while [ ${is_ctrl_c} -ne 1 ];
doinotifywait -e CLOSE_WRITE ${fname}.asy;asy ${fname}.asy;if [ $? -ne 0 ]; thencreate_empty_eps;fi
done

画图

写一个示例

size(100);
draw(unitcircle);
draw(unitsquare);
fill(unitsquare);

Asymptote数学画图

Asymptote 自己搭建简易IDE相关推荐

  1. 搭建简易Linux局网服务器

    搭建简易Linux局网服务器 该文章转自 联信软件 作为桌面操作系统,Linux的人机界面可真是不敢恭维,但是,作为网络操作系统,其易用性(对于NOS而言)和高性能恐怕是很难有能出其右的.当然,这并不 ...

  2. python快捷键设置_UltraEdit搭建Python IDE环境+设置快捷键

    1 一.搭建Python IDE环境 2 1.打开UltraEdit 2.菜单项:高级/工具配置 3.点击插入(I),并按如下①②③步骤依次填写 3 ①命令选项卡中依次输入如下: 菜单项名称:运行py ...

  3. ubuntu之使用sublime text3搭建Python IDE

    参考文章: 教你如何将 Sublime 3 打造成 Python/Django IDE开发利器 Ubuntu16.04下使用sublime text3搭建Python IDE 如何优雅地使用Subli ...

  4. Django搭建简易博客

    Django简易博客,主要实现了以下功能 连接数据库 创建超级用户与后台管理 利用django-admin-bootstrap美化界面 template,view与动态URL 多说评论功能 Markd ...

  5. UltraEdit搭建python IDE环境+设置快捷键

    转帖自:http://hi.baidu.com/singkuan/blog/item/6948fa073d1b5ece7a89472c.html UE搭建python IDE环境+设置快捷键 2007 ...

  6. CDH5.15离线搭建简易版集群(完整版)

    运用CDH5.15离线搭建简易版集群 关于CDH和Cloudera CDH(Cloudera的发行版,包括Apache Hadoop),是Hadoop众多分支中的一种,由Cloudera维护,基于稳定 ...

  7. 如何搭建简易又安全的企业内部文件服务器?

    提到搭建企业内部文件服务器,很多人的第一反应是Samba文件服务器. 确实,在过去的很多年里,大部分企业都是通过Windows Server的域控制器使企业内部员工方便地进行资源共享和使用网络打印机. ...

  8. Linux Centos7 搭建简易堡垒机安装jailkit实现chroot

    Linux Centos7 搭建简易堡垒机安装jailkit实现chroot 一.什么是堡垒机 堡垒机,即在一个特定的网络环境下,为了保障网络和数据不受来自外部和内部用户的入侵和破坏,而运用各种技术手 ...

  9. 搭建Remix IDE本地开发环境

    前言 Remix IDE是ETH提供的在线合约开发IDE,因为Remix IDE官方服务在海外,访问时有点慢,所以打算本地搭建一下. Remix IDE github: https://github. ...

最新文章

  1. python面向对象开发(类的属性-精讲
  2. 网站排名和权重骤降的原因是什么?又该如何处理?
  3. 中国金控(00875):林裕豪调任执行董事并获任首席执行官
  4. inspinia中文管理后台_Bootstrap优秀模板-INSPINIA.2.9.2
  5. 单播 广播 组播_【技术解析】关于组播概念那些你需要知道的~
  6. C#中json序列化与反序列化
  7. 9张图总结一下阿里云的2019
  8. 再谈PHP、Python与Ruby
  9. HCIE Security 防火墙虚拟系统 备考笔记(幕布)
  10. PLC编程系统的使用经验分享
  11. 平面排版时,教你突出中文美感的几种方法
  12. 企业外贸网站建设的要求及注意事项
  13. 【自然语言处理】【聚类】DCSC:利用基于对比学习的半监督聚类算法进行意图挖掘
  14. Unity 特效 之 武器拖尾效果
  15. 我们现在有乒乓球运动员和篮球运动员,乒乓球教练和篮球教练 为了出国交流,跟乒乓球相关的人员都要学习英语 请用所有知识分析: 这个案例中有哪些具体类,哪些抽象类,哪些接口,并用代码实现
  16. Linux 命令系统
  17. ArcMap|珞珈一号遥感影像在ArcMap中的处理
  18. 互联网公司的年会也太太太刺激了吧!
  19. win7资源管理器从计算机开始,Win7系统资源管理器在哪里?
  20. matlab绘制四棱台,几何画板绘制正四棱台的详细步骤

热门文章

  1. mysql基础之DML、DQL语句
  2. mysql 性能容量评估
  3. kernel:max92xx加串解串示例代码[可读取16位寄存器地址]
  4. Java的(((φ(◎ロ◎;)φ))) 实例(成 员)内部类、局部内部类、匿名内部类和静态内部类。
  5. x509: cannot validate certificate for x.x.x.x because it doesn't contain any IP SANs 解决:
  6. 《国家智能制造标准体系建设指南(2018年版)》发布(附全文)
  7. 从黑马刚毕业拿年薪45万!这个岗位开始高薪抢人了?
  8. [Hadoop]Sqoop 1.4.2中文文档(一)之数据导入
  9. win10分屏快捷键无法使用_如何使用Windows10系统分屏快捷键?
  10. BUGKU CTF (Crypto第一篇)