lilypond 进阶—— 用scheme画图
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画图的更多相关文章
- lilypond进阶——用scheme修改乐谱细节
lilypond对乐谱内容的修改非常自由,用户可以自由根据需要做调整 调整一般都是用\override的命令,但是会比较冗长,码代码的时候比较麻烦 重新设置一个函数来概括命令,调用的时候使用的代码更短 ...
- Android学习笔记进阶18 之画图并保存图片到本地
1.首先创建一个Bitmap图片,并指定大小: 2.在该图片上创建一个新的画布Canvas,然后在画布上绘制,并保存即可: 3.需要保存的目录File,注意如果写的目录如“/sdcard/so ...
- Android学习笔记进阶18之画图并保存图片到本地
1.首先创建一个Bitmap图片,并指定大小: 2.在该图片上创建一个新的画布Canvas,然后在画布上绘制,并保存即可: 3.需要保存的目录File,注意如果写的目录如“/sdcard/so ...
- matlab 画图进阶
matlab 画图进阶 applications of matlab in engineering 图表类型的选择 first:advanced 2d plots special plots logl ...
- 机器学习进阶-案例实战-图像全景拼接-图像全景拼接(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 ...
- 【我的Android进阶之旅】 解决bug: Expected file scheme in URI: content://downloads/my_downloads/12
一.错误描述 今天测试MM用HTC手机测试某个模块的时候crash了,抓log后发现是使用DownloadManager下载apk安装包然后自动安装的时候,抛了异常:java.lang.Illegal ...
- Matlab 进阶学习记录
最近在看 Faster RCNN的Matlab code,发现很多matlab技巧,在此记录: 1. conf_proposal = proposal_config('image_means', ...
- 10min系列之二日志可视化进阶
10min系列之二日志可视化进阶(作者原创,同步发布在github) 本文需要有一定的python和前端基础,如果没基础的,请关注我后续的基础教程系列博客 本文所有的demo,都是浏览器下展示的 原创 ...
- Java进阶篇(六)——Swing程序设计(上)
Swing是GUI(图形用户界面)开发工具包,内容有很多,这里会分块编写,但在进阶篇中只编写Swing中的基本要素,包括容器.组件和布局等,更深入的内容会在高级篇中出现.想深入学习的朋友们可查阅有关资 ...
随机推荐
- HAOI2012高速公路bzoj2752 (线段树,数学)
题目大意: 给定一个长度为n的链,一共m次操作 对于每次操作 \(C\ l\ r\ x\)表示将第l个点到第r个点之间的所有道路的权值增加v \(Q\ l\ r\)在第l个到第r个点里等概率随机取出两 ...
- 简单几步零成本使用Vercel部署OneIndex 无需服务器搭建基于OneDrive的网盘
前提 你需要一个OneDrive账号,必须管理员开放API 需要已安装Node.js 拥有Github账号,没有就注册一个 魔法上网环境(看情况) 注册应用 登录https://portal.azur ...
- SpringBoot入门07-Thymeleaf中显示ajax请求到的数据
Thymeleaf中显示ajax请求所需依赖 <!--所需依赖--><dependency> <groupId>org.springframework.boot&l ...
- 如何接入 K8s 持久化存储?K8s CSI 实现机制浅析
作者 王成,腾讯云研发工程师,Kubernetes contributor,从事数据库产品容器化.资源管控等工作,关注 Kubernetes.Go.云原生领域. 概述 进入 K8s 的世界,会发现有很 ...
- Kubernetes集群环境搭建全过程
资源准备以及服务器初始化 所有服务器执行一下脚本进行配置信息初始化: #!/bin/bash cd `dirname $0` # 关闭selinux setenforce 0 sed -i '/SEL ...
- Noip模拟70 2021.10.6
T1 暴雨 放在第一道的神仙题,不同的做法,吊人有的都在用线段树维护$set$预处理 我是直接$dp$的,可能代码的复杂度比那种的稍微小一点 设$f[i][j][p][0/1]$表示考虑了前$i$列, ...
- 转:bash shell 语法1
1 Shell介绍 Shell的作用是解释执行用户的命令,用户输入一条命令,Shell就解释执行一条,这种方式称为交互式(Interactive),Shell还有一种执行命令的方式称为批处理(Batc ...
- 2021CCPC河南省赛(部分代码待更)
最终A了8道题, 喜提一金, 也是在意料之中. 第一次三个队友集中在一起打比赛, 也体验了一下线下的氛围, 还是比较赞的, 自己也不是说毫无作用, 帮助团队做了几道题, 还是挺满意的. 1002 em ...
- PHP笔记2__变量/字符串/类型转换/常量/,,
<?php //可变变量 $a = "ok"; $$a = "fine"; $$$a = "er"; echo $ok; echo & ...
- hdu 5102 The K-th Distance (队列+生成法,,)
题意: N个点的一棵树.定义点u和点v的距离等于它们之间的路径(唯一的)的长度.这样我们可以得到n*(n-1)/2个距离. 将它们从小到大排序,问前K个数的和是多少. 思路: 将边长为1的树枝都入队列 ...