objective-c - Morphic 中的 Morph 和 Cocoa 中的 NSView 有什么区别?

标签 objective-c cocoa smalltalk pharo morphic

我想知道 Morphic 的特别之处。

最佳答案

Morphic 远远超过 NSView 或任何其他图形 类,它们只允许重新实现一组有限的功能。 Morphic 是一个极具延展性的 UI 构建工具包。 Morphic 背后的一些设计思想清楚地表明了这一意图:

  • 包含全面的二维坐标系层次结构。它们不限于笛卡尔或线性。有用的非线性坐标系包括极坐标、对数、双曲线和地理(类似 map )投影。
  • 将坐标系统的处理与变形本身分开。变形应该只需要选择它喜欢的坐标系,而不是需要自己将它绘制的每个点转换为世界坐标。它的#drawOn:方法和它的子变形的位置在它自己的坐标系中表示。
  • 显示属性(例如尺寸或分辨率)完全独立。没有像素的概念。 GUI 被认为是更高层次的。所有 GUI 都与像素分辨率无关。所有渲染都是抗锯齿的。
  • 分离坐标系简化了变形的移动、缩放和旋转。
  • 所有坐标都是 float 。这有利于允许完全任意的比例,而不会出现明显的舍入误差。
  • Morph 层级不是形状的层级。变形没有边界或颜色的概念。没有子变形对齐的一般概念。一个特定的 morph 可以以任何对自己有意义的方式实现这些。
  • Morphic 事件处理非常灵活,允许您将事件发送到任意对象。该对象不需要继承 Morph。

关于objective-c - Morphic 中的 Morph 和 Cocoa 中的 NSView 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4070444/

相关文章:

ios Sprite Kit 截图?

ios - 有什么方法可以从 iOS 应用程序对卡进行收费,而无需从我们的服务器进行后端收费。(Stripe - iOS)

oop - Smalltalk 中的必需属性

python - Pharo 中的高性能 Python 集合

objective-c - 应用程序崩溃 - "DiskImageCache: Could not resolve the absolute path of the old directory."

objective-c - 使用反射/内省(introspection)调用参数数量未知的选择器

iphone - 从文件读取数据时出现“NSRangeException”

cocoa 绑定(bind) : Binding an NSSlider to a single value in an array

objective-c - 使用 PDFDocument initWithData 获取 'unrecognized selector sent to instance'?

serial-port - Pharo:从 Arduino 串口读取字节