lilypond的许多底层设定是通过scheme语言写的,特别是要写函数的时候。

所以了解一下scheme的作用很重要。

不幸的是,不像lilypond本身的代码,scheme代码的结果是不会直接预览的,这个问题困扰我很久

直到这几天稍微摸索清楚了,把scheme里面和作图有关的一些命令整理如下,包括了以下内容:

1)用坐标的方式作图

2)图像的基本操作,如移动、复制、放缩、旋转等

\version "2.20.0"
\language "english" \paper {
#(set-paper-size "a6")
} %这个文档讨论如何用scheme作图 %make-connected-path-stencil的命令,需要声明以下内容
%PS:sbh是“随便画”的意思 sbh=
#(make-connected-path-stencil
'((0 1) (1 1) (0 0) (-1 -1)) ;;作图路径
0.5 ;;厚度
4 ;;横向比例
3 ;;纵向比例
#t ;;是否闭合
#t ;;是否填充图形
)

%lilypond不会直接将scheme语言写好的结果的显示出来,所以用下面的命令预览最方便
%别忘了引用变量前加#,这是调用scheme语言的标志

\markup { "这是画出来的图" \stencil #sbh } %移动物品就使用ly:stencil-translate,其中要填上对象和移动坐标
sbhmove=
#(ly:stencil-translate
sbh ;;对象
(cons 20 0) ;;移动坐标
) \markup { "这是移动后的图" \stencil #sbhmove } %ly:stencil-add将两个或多个对象合起来
%如果要复制对象,则需要先用ly;stencil-translate做移动
sbhTwo =
#(ly:stencil-add
sbh ;;对象1
(ly:stencil-translate sbh (cons 10 0) );;对象2
) \markup { "这是合起来的两个图" \stencil #sbhTwo } % 放大缩小图像用ly:stencil-scale命令
sbhbig=
#(ly:stencil-scale
sbh ;;对象
2 ;;横向比例
3 ;;纵向比例
) \markup { "这是放大了的图" \stencil #sbhbig } sbhrotate =
#(ly:stencil-rotate
sbh ;;对象
20 ;;旋转角度
0 ;;旋转中心x坐标
1 ;;旋转中心y坐标
) \markup { "这是旋转后的图"\stencil #sbhrotate }

lilypond 进阶—— 用scheme画图的更多相关文章

  1. lilypond进阶——用scheme修改乐谱细节

    lilypond对乐谱内容的修改非常自由,用户可以自由根据需要做调整 调整一般都是用\override的命令,但是会比较冗长,码代码的时候比较麻烦 重新设置一个函数来概括命令,调用的时候使用的代码更短 ...

  2. Android学习笔记进阶18 之画图并保存图片到本地

    1.首先创建一个Bitmap图片,并指定大小:   2.在该图片上创建一个新的画布Canvas,然后在画布上绘制,并保存即可:   3.需要保存的目录File,注意如果写的目录如“/sdcard/so ...

  3. Android学习笔记进阶18之画图并保存图片到本地

    1.首先创建一个Bitmap图片,并指定大小:   2.在该图片上创建一个新的画布Canvas,然后在画布上绘制,并保存即可:   3.需要保存的目录File,注意如果写的目录如“/sdcard/so ...

  4. matlab 画图进阶

    matlab 画图进阶 applications of matlab in engineering 图表类型的选择 first:advanced 2d plots special plots logl ...

  5. 机器学习进阶-案例实战-图像全景拼接-图像全景拼接(RANSCA) 1.sift.detectAndComputer(获得sift图像关键点) 2.cv2.findHomography(计算单应性矩阵H) 3.cv2.warpPerspective(获得单应性变化后的图像) 4.cv2.line(对关键点位置进行连线画图)

    1. sift.detectAndComputer(gray, None)  # 计算出图像的关键点和sift特征向量 参数说明:gray表示输入的图片 2.cv2.findHomography(kp ...

  6. 【我的Android进阶之旅】 解决bug: Expected file scheme in URI: content://downloads/my_downloads/12

    一.错误描述 今天测试MM用HTC手机测试某个模块的时候crash了,抓log后发现是使用DownloadManager下载apk安装包然后自动安装的时候,抛了异常:java.lang.Illegal ...

  7. Matlab 进阶学习记录

    最近在看 Faster RCNN的Matlab code,发现很多matlab技巧,在此记录: 1. conf_proposal  =  proposal_config('image_means', ...

  8. 10min系列之二日志可视化进阶

    10min系列之二日志可视化进阶(作者原创,同步发布在github) 本文需要有一定的python和前端基础,如果没基础的,请关注我后续的基础教程系列博客 本文所有的demo,都是浏览器下展示的 原创 ...

  9. Java进阶篇(六)——Swing程序设计(上)

    Swing是GUI(图形用户界面)开发工具包,内容有很多,这里会分块编写,但在进阶篇中只编写Swing中的基本要素,包括容器.组件和布局等,更深入的内容会在高级篇中出现.想深入学习的朋友们可查阅有关资 ...

随机推荐

  1. python中的 * 和 ** 作用含义

    python中的 * 和 ** ,能够让函数支持任意数量的参数,它们在函数定义和调用中,有着不同的目的 一. 打包参数 * 的作用:在函数定义中,收集所有位置参数到一个新的元组,并将整个元组赋值给变量 ...

  2. Java 创建PDF打印小册子

    概述 PDF打印小册子是指将PDF格式文档在打印成刊物前需要提前进行的页面排版,以便在打印后装订成册.下面以Java代码展示如何来实现.这里调用Free Spire.PDF for Java中的Pdf ...

  3. .NET下使用ufun函数取CAM操作的进给速度

    UF_PARAM_ask_subobj_ptr_value,这个函数在封装的时候,给了很大一个坑啊. NXOpen.UF.UFParam.AskSubobjPtrValue(ByVal param_t ...

  4. 安装pytorch后import torch显示no module named 'torch'

    问题描述:在pycharm终端里通过pip指令安装pytorch,显示成功安装但是python程序和终端都无法使用pytorch,显示no module named 'torch'. 起因:电脑里有多 ...

  5. [no code][scrum meeting] Beta 8

    $( "#cnblogs_post_body" ).catalog() 例会时间:5月22日15:30,主持者:赵涛 下次例会时间:5月23日11:30,主持者:肖思炀 一.工作汇 ...

  6. Prometheus的单机部署

    Prometheus的单机部署 一.什么是Prometheus 二.Prometheus的特性 三.支持的指标类型 1.Counter 计数器 2.Gauge 仪表盘 3.Histogram 直方图 ...

  7. 问题:两个对象值相同(x.equals(y) == true),但是可能存在hashCode不同吗?

    面试官的考察点 这道题仍然是考察JVM层面的基本知识,面试官认为,基本功扎实,才能写出健壮性和稳定性很高的代码. 涉及到的技术知识 (x.equals(y)==true),这段代码,看起来非常简单,但 ...

  8. SVN查看项目修改记录及修改内容

    工具/原料 svn 一,查看修改记录 1 选择要查看的文件夹,打开之后在空白的地方右键. 2 选择svn里面的"查看日志".show_Log 3 在弹出的日志框里,可以看到,你可以 ...

  9. 通过两个位置的经纬度坐标计算距离(C#版本)

    /// <summary> /// 通过地图上的两个坐标计算距离(C#版本) /// Add by 成长的小猪(Jason.Song) on 2017/11/01 /// http://b ...

  10. stop: Job failed while stopping start: Job is already running: networking eth0 not configured

    再给ubuntu系统重启网络服务的时候出现失败,"stop: Job failed while stopping start: Job is already running: network ...