问题标签 [drawing]

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 投票
1 回答
4272 浏览

c# - 在 Winforms 中绘制一个闪烁的插入符号

我正在开发一个自定义控件,它最类似于文本区域。我正在绘制文本,它可以正常工作,并接受也可以工作的输入。但是我(用户)在我输入时猜测插入符号在哪里,因为我正在手动完成所有操作。如何绘制闪烁的插入符号以显示我当前正在输入的位置?有没有标准的方法来做到这一点?

0 投票
1 回答
1933 浏览

javascript - 使用 javascript 绘制圆弧

有没有办法在 JavaScript 中使用点来绘制弧线?

当我指定一组点时,我需要画一条弧线。

0 投票
14 回答
175787 浏览

c# - 操作方法:在控制台应用程序中绘制表格的最佳方法 (C#)

我有一个有趣的问题。想象一下,我有很多数据以非常快的间隔发生变化。我想在控制台应用程序中将该数据显示为表格。前:

如何保持快速以及如何固定列宽?我知道如何在 java 中做到这一点,但我不知道它是如何在 C# 中完成的。

0 投票
4 回答
9090 浏览

iphone - UIView:如何进行无损绘图?

我原来的问题:

我正在创建一个简单的绘图应用程序,并且需要能够在我的drawRect. 在不完全替换现有内容的情况下绘制现有内容的正确方法是什么?

根据在这里和其他地方收到的答案,这就是交易。

  1. 您应该准备好在drawRect 调用时重新绘制整个矩形。

  2. 无法通过执行以下操作来防止内容被删除:

    [self setClearsContextBeforeDrawing: NO];

    这只是对图形引擎的一个提示,让它为您预先清除视图是没有意义的,因为无论如何您可能需要重新绘制整个区域。它可能会阻止您的视图被自动删除,但您不能依赖它

  3. 要在视图顶部绘制而不擦除,请在屏幕外位图上下文中进行绘图(系统永远不会清除该上下文。)然后在您的 中drawRect,从该屏幕外缓冲区复制到视图。

例子:

TODO:任何人都可以优化,drawRect以便只使用(通常很小的)修改后的矩形区域进行复制吗?

0 投票
2 回答
6456 浏览

c# - C# .NET 3.5 WinForms 的部分透明度?

我正在制作一个 .NET 3.5 应用程序,其表单绘制了部​​分透明的黑色背景。我正在重写 OnPaintBackground 来完成此操作:

它可以工作,但有时表单会在不清除屏幕的情况下自行绘制,从而使透明度比应有的更暗。我试过玩Graphics.Flush()and Graphics.Clear(),但它要么无济于事,要么完全消除了透明度。有什么建议么?

编辑: 这是它的样子,在左侧启动应用程序后,在表单重绘自身几次(以响应从一个控件到另一个控件的选项卡)之后:

透明度问题 http://www.quicksnapper.com/files/5085/17725729384A10347269148_m.png

编辑2: 我今天早上尝试了一些事情,并注意到当透明部分后面的桌面发生变化时,它实际上并没有被重绘。例如,如果我打开任务管理器并将其放在窗口后面,您不会看到它自行刷新。这与我在透明度级别上看到的情况是有道理的。是否有让 Windows 重绘窗口后面区域的功能?

编辑 3: 我尝试更改表单上的一些属性,但它们都导致表单绘制不透明的黑色:

我将尝试为透明部分创建一个单独的窗口,正如提到的过度松弛,但仍然欢迎任何其他想法。

0 投票
4 回答
3270 浏览

c# - c#的图形查看器/抽屉?

是否有用于绘制/可视化图形的良好 C# 库?我说的是节点路径可视化而不是折线图等。(最好是原生的,而不是 pstricks 的包装器或类似的东西)谢谢

0 投票
1 回答
4717 浏览

windows - OpenGL 上下文和设备上下文如何工作?

我是 U/I 编程的新手,我正在尝试开始使用 OpenGL。当我运行一个使用 GLUT 创建新 OpenGL 窗口的示例程序时,它运行良好。好的。但是,在另一个程序的上下文中,我必须响应 Draw 事件(在 Windows 上),并将设备上下文传递给我——而且我可能没有可用的 GLUT——我的困惑是:

  1. 何时创建和销毁设备上下文?我可以绘制给我的任何设备上下文,还是只绘制其中的一些(我怎么知道)?

  2. 我是否必须创建自己的 OpenGL 上下文并使用它来绘制,或者我可以使用“当前”OpenGL 上下文?每次发送绘图事件时,我是否必须重新创建上下文?

基本上我的问题是,在我收到“Draw”事件的情况下,我多久尝试一次创建 OpenGL 上下文以及这与设备上下文的创建/销毁周期有何关系?

0 投票
2 回答
5389 浏览

math - 通过重用基本的贝塞尔曲线函数来绘制贝塞尔曲线的一部分?

假设我正在使用一些图形 API,它允许我通过指定 4 个必要点来绘制贝塞尔曲线: 开始、结束、两个控制点

我可以重复使用这个函数来绘制“原始”曲线的x%(通过调整控制点和终点)吗?

还是不可能?

不必要的信息,如果有人关心:

  • 我需要
    用不同的颜色和/或线条样式绘制原始贝塞尔曲线的每 n%
  • 我正在使用 Java 的 Path2D 绘制贝塞尔曲线:

    /li>
0 投票
1 回答
492 浏览

windows - 是否可以在已经使用 GDI+ 的窗口中使用 OpenGL?

基本上,我被要求渲染到一个屏幕外 DC,该 DC 设置(我不确定如何)使用 GDI+。当我尝试将 OpenGL 上下文与 DC 相关联时,它只是失败了(即返回零但没有错误)。SetPixelFormat 也失败了(可能是因为它已经设置好了?),再次返回零,而不是错误。

任何人都知道,在这种情况下(即其他人使用 GDI+ 的窗口的屏幕外上下文)是否有可能创建 OpenGL 上下文并使用 OpenGL 进行我自己的渲染?(如果可能,为什么 wglCreateContext 会失败?)

0 投票
3 回答
21334 浏览

java - 如何使用鼠标拖动事件在java小程序上绘制矩形

我正在使用java。我想根据 mousedrag 事件绘制矩形。如果用户拖动鼠标,则小程序上的矩形应根据当前鼠标坐标增加或减少。我有以下代码。

在下面的代码中,我使用了 [b]SelectionArea[/b] 类,它扩展了我正在执行绘图操作的画布。我在这个类中使用 [b]image[/b] 变量进行双缓冲以减少闪烁并保存小程序的先前状态(即小程序的绘制内容)

但是如果我绘制第一个矩形,代码工作正常。如果我开始绘制第二个矩形,则先前绘制的矩形正在消失。我希望之前绘制的矩形出现在屏幕上

谁能告诉我如何解决这个问题。

}

}

另外,如果我在全屏模式下运行此代码,那么我会看到矩形仅在我释放鼠标后才出现在屏幕上。但我希望在拖动鼠标时矩形出现在屏幕上,它应该根据当前鼠标坐标改变它的尺寸。任何人都可以帮助我吗?