【问题标题】:Raster vs paint(g) , paintComponent(g)光栅与油漆(g),油漆组件(g)
【发布时间】:2014-06-03 11:32:21
【问题描述】:

我是一个新手程序员,最近我遇到了很多动画方法:

  1. 使用BufferedImages,即。使用双缓冲或三缓冲方法绘制到图像和显示。
  2. 通过扩展 Component 或 Button 来制作我的精灵组件。并由repaint(g)重绘。
  3. 栅格化,使用栅格和整数数组、位图等。

我意识到方法 1 和 2 是相似的,因为它们使用 paint() 方法,但是光栅化涉及自制功能,例如。通过遍历代表每个像素的整个数组并将颜色设置为所需颜色来创建设置背景的函数。

我看到很多人在网上使用光栅方法尽管 1 和 2 看起来更简单。

请大家帮帮我,告诉我应该走哪条路以及为什么。

【问题讨论】:

    标签: java graphics paintcomponent raster


    【解决方案1】:

    第一种和第二种方法非常相似,可以归结为问题的上下文。

    第三个选项在很大程度上归结为提供一个灵活的 API,该 API 独立于用于展示它的工具包或框架。有人可能会说速度有所提高,但随着 Swing 和 JavaFX 更直接地与 DirectX 和 OpenGL 管道一起工作,这不是一个问题。

    除非您计划使用一些非常低级的功能或与非标准 API 接口,否则我不会太担心(某些效果绘制可能会更快完成,但这完全取决于上下文)

    就个人而言,它将侧重于了解所涉及的基础知识和原则,以及如何使用前两个选项来实现它们,因为它允许您使用相对简单的 API 专注于这些概念

    随着时间的推移,或者您遇到无法使用这些技术解决的情况,那么可能是时候考虑使用光栅方法了。

    请记住,您仍然需要将该字节数组转换为 API 想要的格式,这本身会增加开销

    【讨论】:

    • 非常感谢!我想我会坚持使用更高级别的方法并暂时跳过光栅化。 :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多