marginnote的笔刷建议

问题描述

如图所示为ipad的钢笔工具在逆时针45度书写与水平书写的对比

为了保证书写参数相同,先写出逆时针45度汉字,再框选使用拉直命令,得到水平书写的汉字。
两种方式对比后,水平书写的横较细,坚比较粗,不太符合汉字美观;逆时针45度得到的汉字横竖相差不大,可以体现出部分笔锋,但是撇较粗。
相比之下斜45度书写出来的字体较水平书写时的更加符合汉字习惯且看起来没有那么拥挤

询问GPT

因为手写时是手动逆时针45度,所以当更改笔刷方向时,应该是顺时针45度

Q:如何开发一个插件将marginnote的笔刷大小调节设置为无极调节

A:要在MarginNote中开发一个插件将笔刷大小调节设置为无极调节,可以使用MarginNote提供的SDK和API进行操作。以下是一些基本的步骤:

  1. 创建一个MNScribbleView实例,并设置其代理(delegate)为您的插件对象。
  2. 实现MNScribbleViewDelegate协议方法中的「scribbleView:didUpdateBrushTool:」函数,用于更改笔刷工具的宽度并将其分配给MNScribbleView实例的currentTool属性。
  3. 在需要的地方实例化您的插件,并添加其作为MNScribbleView实例的代理。
    示例代码如下:
class MyPlugin: NSObject, MNScribbleViewDelegate {
    func scribbleView(_ scribbleView: MNScribbleView, didUpdateBrushTool brushTool: MNBaseBrushTool) {
        var newTool = brushTool
        let distance = CGFloat(10.0) // 默认最大距离为10
        let scale = max(min(distance / 10, 1), 0)
        let width = CGFloat(scale) * 25 // 最大笔刷宽度为25
        newTool.width = width
        newTool.minimumWidth = 0
        newTool.maximumWidth = 0
        scribbleView.currentTool = newTool
    }
}

let scribbleView = MNScribbleView(frame: self.view.bounds)
let plugin = MyPlugin()
scribbleView.delegate = plugin
self.view.addSubview(scribbleView)

在这个例子里,我们创建了一个MNScribbleView实例,并设置其代理为MyPlugin对象。接着,我们在MyPlugin类中实现了MNScribbleViewDelegate协议方法「scribbleView:didUpdateBrushTool:」,该方法在笔刷工具更新时被调用,并传入当前笔刷工具作为参数。在该方法中,我们计算出当前笔刷宽度并创建一个新的笔刷工具。然后,我们将该笔刷工具的width、minimumWidth和maximumWidth属性都设置为0,以实现无极调节。最后,将新的笔刷工具分配给MNScribbleView实例的currentTool属性。
请注意,MarginNote的插件开发需要使用Objective-C或Swift编程语言,具备一定的iOS开发经验和技能。此外,Apple Pencil的笔刷大小调节可能因您的具体应用而异,可以根据实际需求进行自定义设置。

Q:如何在marginnote中开发一款插件将笔刷调整为顺时针45度呢?
A:要在MarginNote中开发一款插件将笔刷调整为顺时针45度,可以使用MarginNote提供的SDK和API进行操作。以下是一些基本的步骤:

  1. 创建一个MNScribbleView实例,并设置其代理(delegate)为您的插件对象。
    实现MNScribbleViewDelegate协议方法中的「scribbleView:didSetupWithTool:」函数,用于更改笔刷工具的旋转角度并将其分配给MNScribbleView实例的currentTool属性。
  2. 在需要的地方实例化您的插件,并添加其作为MNScribbleView实例的代理。
    示例代码如下:
class MyPlugin: NSObject, MNScribbleViewDelegate {
    func scribbleView(_ scribbleView: MNScribbleView, didSetupWithTool tool: MNBaseBrushTool) {
        var newTool = tool
        let rotationAngle = -CGFloat.pi / 4 // 顺时针旋转45度
        let transform = CGAffineTransform(rotationAngle: rotationAngle)
        newTool.transform = transform
        scribbleView.currentTool = newTool
    }
}

let scribbleView = MNScribbleView(frame: self.view.bounds)
let plugin = MyPlugin()
scribbleView.delegate = plugin
self.view.addSubview(scribbleView)

在这个例子里,我们创建了一个MNScribbleView实例,并设置其代理为MyPlugin对象。接着,我们在MyPlugin类中实现了MNScribbleViewDelegate协议方法「scribbleView:didSetupWithTool:」,该方法在MNScribbleView实例化时被调用,并传入当前笔刷工具作为参数。在该方法中,我们修改了旋转角度,创建了一个新的笔刷工具,并将其分配给MNScribbleView实例的currentTool属性。最后,将插件对象添加为MNScribbleView实例的代理。
请注意,MarginNote的插件开发需要使用Objective-C或Swift编程语言,具备一定的iOS开发经验和技能。另外,Apple Pencil笔刷方向可能因您的具体应用而异,可以根据实际需求进行自定义设置。

结论

由于本人能力有限,并非计算机专业,对gpt的回答无法判断是在正确,也没有这方面的开发经历,所以将一些构想提出,希望感兴趣的大佬能够将其实现
欢迎各位讨论交流,为了更好的使用体验

1 个赞