问题标签 [paint]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
52615 浏览

java - 在 JPanel 中绘制文本

我正在寻找有关如何在 JPanel 中绘制文本的最基本描述。我知道那里有十亿个教程,但没有一个是点击我的,我有一些具体的问题可以帮助其他困惑的人。作为一个设置(一个测试应用程序),我有一个类,它有一个 JLabel、一个 JTextField、一个 JButton 和一个 JPanel。应用程序从外部文件中读取整数,并在按下 JButton 时在面板中显示它们的平均值。我已经整理好所有底层程序(即按钮响应并将平均值打印到命令行),但我似乎无法整理出如何将平均值打印到面板。我想我最大的问题是如何将paint() 或paintComponet() 方法与其余代码结合起来。它应该是它自己的类吗?JPanel 应该是它吗?自己的课?这似乎是大多数教程告诉我的,我只是不确定第一步到底是什么。代码如下所示:

任何和所有的帮助/方向表示赞赏。我知道我最近将此代码用于其他问题,我只想知道这一切!理想情况下,面板会在单击按钮时显示以整数为单位读取的平均值,并在焦点位于其上并按下输入时显示输入到 textfeild 中的任何内容,但我正在采取婴儿步骤,就像我说的那样,我希望此线程成为其他有类似问题但无法从 sun 文档或其他站点找到答案的人的通用教程。提前非常感谢。丹:)

0 投票
1 回答
849 浏览

iphone - iPhone 上的 OpenGL ES:基于计时器的绘画问题、抖动

我在 iPhone 上有一个 OpenGL ES 1.1 项目,主要基于此处给出的空 OpenGL ES 应用程序:

http://iphonedevelopment.blogspot.com/2009/06/empty-opengl-es-application-project.html

我正在 8GB 的​​ 3G(不是 3GS)设备上进行测试。

我的应用程序中执行 openGL 操作的绘制循环在每次渲染屏幕时都会做很多事情。然而,在它在每个绘制周期都做同样的事情的情况下,我看到了可变的帧速率。我已经将触发绘制代码的 NSTimer 设置为每秒触发 30 次——即每 0.0333 秒。主要问题是,虽然我的实际绘制代码通常需要大约相同的时间来执行一个绘制(就墙时间而言),但它会有所不同,有时需要更长的时间,没有明显的原因。使用仔细的日志记录来报告它们发生时的最大时间间隔,我可以看到有时我的绘画需要长达 0.23 秒才能完成 - 这就像 4FPS,与 30FPS 相比,就像跳过 5 帧动画/用户交互,这是不是很可接受。

起初我怀疑我的绘制循环卡在了某个锁上(那里没有很多,因为 GL 在主线程上渲染东西(这是必要的 AFAIK),传入事件处理也是如此),但是一些日志记录的粒度更细透露,在一个绘制代码执行周期中,一段基本上几乎什么都不做的代码流逝了很长时间,当然也不是 GL 操作。

所以它看起来有点像我的 GL 绘图线程(即主线程)有时会无缘无故地花费更长的时间。我的应用程序中有通讯并且我禁用了通讯以查看这是否是问题 - 但我仍然在我的绘画执行时间看到一些“尖峰”,当它每次都在做同样的绘画时。

似乎另一个线程刚刚被切换到,中间油漆代码,很长一段时间,然后返回我的油漆代码,在occaison。

关于如何进一步分析发生了什么的任何想法?我知道 NSTimers 并不完美,也没有保证频率,但这里的主要问题是我的实际绘制周期有时只需要很长时间,大概是因为其他一些线程被切换到......

0 投票
2 回答
2684 浏览

c# - 像 Web.Application 中的功能一样绘制?

我想在 c#asp.net 的 Web 应用程序中实现 Ms Paint 之类的功能。像裁剪着色缩放,颜色选择器等。请告诉我是否有任何预构建工具或应用程序。任何指针和建议将不胜感激。谢谢 !

0 投票
5 回答
19564 浏览

math - 混合两个 RGB 颜色向量以获得结果

我正在尝试混合两个源 RGB 向量来创建第三个“结果向量”,它是前两个的直观混合。

理想情况下,我将能够模拟“真正的油漆混合特性”,但为简单起见,我试图找到一种方法,使结果看起来直观地类似于您通过组合两个源 rgb 得到的结果。

最低限度,这些特征:
红色 + 黑色 = 深红色
红色 + 白色 = 浅红色

最佳,也具有真实的油漆特性:
红色 + 蓝色 = 紫色
红色 + 黄色 = 橙色
(等)

--

我目前正在通过添加两个源 RGB 向量/255,然后归一化(并乘以 255)来执行此“懒惰方式”。所以,使用这个:[Red = <1,0,0> * 255] + [Blue = <0,0,1> * 255] 给出 Magenta=<1,0,1>/sqrt(2) * 255,虽然其他颜色不太直观甚至不可见......我需要一个更好的方法!请帮忙 :-)

0 投票
4 回答
2703 浏览

java - 如何继承系统的抗锯齿设置,以便像 swing 一样将文本绘制到屏幕外图像?

当我在 Java 6 下运行我的 swing GUI 应用程序时,它们会自动使用我为所有字体配置的亚像素抗锯齿设置。结果比标准 AA 选项有很大改进。

但是当我绘制图像时,我找不到初始化图形上下文以使用系统的 AA 配置的方法。尝试使用 Java 的不同 AA 提示是一个失败的原因,因为没有亚像素方法适用于所有用户。

有没有办法为给定的图形上下文继承系统 AA 设置,而不必选择一个并显式设置提示?目前我必须使用 GASP AA 来避免标准 AA 用小字体给出的可怕结果。我尝试不为文本 AA 设置任何内容,也没有设置任何 AA 提示。


2010-01-05 更新

我想我已经确定了这一点;亚像素 AA 提示似乎只有在直接绘制到 AWT 图形上下文时才会受到尊重;当我绘制双缓冲图像时,它只是执行标准 AA;但是当我绕过双缓冲图像时,子像素 AA 就完成了。

否则 The_Fire 的答案将适用于有 Swing 可用的 JVM(但不是 J2ME JVM);请注意,The_Fire 的答案在使用 AWT 组件时不起作用(使用 new Label() 而不是 new JLabel() 失败),大概是因为在组件实现显示之前无法提取 FontRenderContext。


我当前获取目标图像的图形上下文的代码如下所示:

创建图像的代码使用了一个底层 AWT 组件,它构成了我在其上进行所有绘画的背景 - 该组件是一个面板,因为我需要能够执行 setFocusCycleRoot 以便它与其他 AWT 组件很好地配合。创建图像代码如下:

0 投票
1 回答
1771 浏览

qt - 如何在 Qt QSlider 上绘制图片而不是滑块?

我创建了一个继承自 QSlider 的类。我想在滑块(抓取器)上画一张图片,而不是显示普通的。怎么做?

--

收到回复后,我找到了答案并发布了。出于对响应者的应有尊重,我将选择该答复。但是,我想共享代码,以便遇到相同问题的任何人都可以受益:

0 投票
2 回答
1432 浏览

jframe - 当我添加绘画方法时,JMenuBar 消失

我试图使用以下代码最终制作游戏。如下所示,该代码有效。

但是,如果您要在其中放置一个绘制方法,如下所示,它将停止显示 JMenuBar。

我什至不是在开玩笑。请帮忙

0 投票
1 回答
579 浏览

javascript - 根据鼠标位置绘制像素

设想:

  • 我在浏览器屏幕上有一个大小为n x n的区域(例如,500 像素 x 500 像素,即 250,000 像素)。
  • 当鼠标在该区域上滚动时,它会“绘制”它经过的像素。
  • 显示填充/未填充像素的百分比
  • 可选的高级场景:当鼠标滚过已经绘制的像素时,将“取消绘制”这些像素,或者以不同的颜色绘制这些像素。

解决方案/问题

  • 检测、记录和显示场景的最有效方法是什么?
  • 定义的区域可以是 div、间隔图像、图像映射、表格、画布?
  • 如何绘制像素?
    • 为每次鼠标移动创建的图像或 div
    • 基于像素坐标创建的服务器端图像?
  • 每次位置更改时传递鼠标位置是否效率太低?
  • 显示 250,000 多个动态像素/对象/数据的有效方式是什么?
0 投票
5 回答
22044 浏览

java - JPanel的绘制背景

如何告诉paint方法仅在JPanel上而不是在整个JFrame上绘制背景。我的 JFrame 尺寸比 JPanel 大。当我尝试为 JPanel 绘制网格背景时,网格似乎被绘制在整个 JFrame 上,而不仅仅是 JPanel。

这里的部分代码:

0 投票
4 回答
3229 浏览

java - Java更新小圈子

我需要在表单上显示大量(500+)小圆圈来模拟 LED。但是,这些圆圈需要非常小,直径约为 8 或 9 个像素。

到目前为止,在我的测试中,我已经整理了一些代码,这些代码创建了一个使用 Shape (Ellipse2D.Double) 的 Led 类,并通过 JFrame 的 paint 方法将其直接显示在 JFrame 上。

这导致我有两个观察/问题:

1) 首先,除非有替代方法,否则 Java 在绘制小圆圈方面似乎存在问题。它们似乎在右下角以默认(或 1 个像素)的笔宽“中断”,这会将这部分切断,留下一个变形的圆圈。如果有什么方法可以画出(很多)小圆圈并让它们看起来正确吗?

2)我的子类 JFrame 覆盖了绘制这些“led”的paint方法,尽管也调用了 super.paint 以确保绘制 JFrame。但是,我看到它很少在第一次出现时绘制 LED,或者当表单移出屏幕并移回时,或者当应用程序放在前面并再次移开时,唯一一次绘制方法是当我最小化/最大化表单时调用。每次表单需要绘画时不应该调用绘画吗?