这个是纯职业需求,很多时候要画简单的人体结构图或者内脏示意图以及经络气脉走向,再辅以简单文字介绍,请问有相关插件实现吗?
artist mode画出来很奇怪,容易产生误解,ditaa,graphviz都要写代码,完全不符合随意画的情况,我找到两个插件,paint.el和epaint模式,前者只有单一的黑色细线,不好区分部位,后者启动报错,不知道怎么回事,但是从介绍看都符合随手画的情况,符合我的使用环境,只是前者单调后者不能用
epaint项目地址 GitHub - chuntaro/epaint: A simple paint tool for Emacs
emacs版本是27,x86平板电脑,请问如何使用epaint或者
有别的方法实现我的需求,感谢!
cireu
2019 年9 月 13 日 07:34
2
建议使用photoshop krita等专业绘图软件
我是给徒弟们演示的时候用的,就类似于涂鸦之类,你说的这些不现实,比如画一个三角形就代表肝脏,心形代表心脏等等,而且一般都是左边打开org,右边直接画,以便更形象
在
(require (quote epaint))
时提示:
Debugger entered--Lisp error: (void-variable cl-struct-epaint-drawable)
(cl-struct-slot-info cl-struct-epaint-drawable)
需要在“epaint-context.el”文件里添加一行:
(defvar cl-struct-epaint-drawable (quote epaint-drawable))
在使用"M-x epaint"时,也会出现上述类似的错误,同样在该文件里再添加一行:
(defvar cl-struct-epaint-gc (quote epaint-gc))
不修改"epaint-context.el"文件的话,在使用"epaint"之前,可以这样使用:
(add-to-list (quote load-path) "~/.emacs.d/site-lisp/epaint")
(with-eval-after-load (quote epaint-context)
(unless (boundp (quote cl-struct-epaint-drawable))
(defvar cl-struct-epaint-drawable (quote epaint-drawable)))
(unless (boundp (quote cl-struct-epaint-gc))
(defvar cl-struct-epaint-gc (quote epaint-gc))))
(require (quote epaint))
1 个赞
我已经完全放弃用软件绘图了。。。
准备好铅笔、橡皮,需要归档的图就拍照。
软件绘图相对于铅笔有一个劣势,就是铅笔可以慢慢描,橡皮可以擦表层,软件不行。
Debugger entered–Lisp error: (void-variable cl-struct-epaint-drawable)
(cl-struct-slot-info cl-struct-epaint-drawable)
和 BlindingDark朋友一样的错误
我的目的是配合org同时简单画一些示意图,就像上面所说的用三角形代表肝脏,图文结合,方便理解,铅笔虽然方便,但是还是达不到左文右图更好
感谢您的指点!
另外我M-x epaint之后,出现的画布不能全屏,只在左上角一块,有办法默认画布全屏吗
还有我在画布上面无法画出图案,就像您发的图片上那样
原来如此,那就将就用了,不过还是期待将来你有兴趣去改进这个插件,谢谢
还有就是你进入epaint之后,是直接可以用鼠标来绘画吗,如果目前不支持手指,我暂时就用paint.el来将就一下
是在PC上用外置鼠标画的,你的触屏设备不能用的话,那就是不能用手指画了。
关于“自定义画布的大小”,我先帮你改一点吧,这个改法不算好,在源码里画布的大小是写成固定的了:
(with-eval-after-load (quote epaint-canvas)
(defvar epaint-canvas-drawable-width 640)
(defvar epaint-canvas-drawable-height 480)
(cl-defmethod initialize-instance ((this epaint-canvas-class) &optional args)
(require (intern (concat "epaint-internal-format-" (symbol-name epaint-internal-format))))
(epaint-plug-in-load-all)
(cl-call-next-method this)
(let (gc-args)
(dolist (prop '(:width :height))
(when-let (value (plist-get args prop))
(setf gc-args (plist-put gc-args prop value))))
(setf (drawable this) (epaint-drawable-create epaint-canvas-drawable-width epaint-canvas-drawable-width)
(foreground this) (apply #'make-epaint-gc (cl-list* :color t gc-args))
(background this) (apply #'make-epaint-gc (cl-list* :color nil gc-args))
(gc this) (foreground this))
(epaint-create-image this :point (plist-get args :point)))))
关于修改画笔颜色的:
(with-current-buffer (get-buffer "*EPaint*")
(epaint-gc-set-color
(foreground epaint-canvas)
(map (quote vector)
(lambda (number)
(car (cl-truncate (* number 255))))
(color-name-to-rgb "purple"))))
当前EMACS所支持的所有颜色:
(list-colors-display)
有兴趣修改的,可以参考下上面的内容。
关于那段代码,是写进epaint canvas.el里面还是直接写到.emacs
加到.emacs里面了,正常,可能我平板性能不够,用起来很卡,暂时先放着,用paint.el代替现在,同时感谢楼上所有给建议的朋友们,祝你们身体健康