问题标签 [tcanvas]

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 投票
2 回答
1546 浏览

delphi - 设置 Canvas.LineTo 的线端样式

有没有办法为 TCanvas.LineTo 方法设置线端的样式?它似乎默认为圆形末端,当 Pen.Width 设置为较大的值(例如 9)时,对于一行不同颜色的几行来说,这看起来非常糟糕。

它看起来像这样(圆形末端):

(其中 * 是蓝色,. 是黄色)

如果在中间线之后画两条外线,那就更糟了:

我希望它看起来像这样(直线结束):

Pen 似乎没有为此提供任何设置,LineTo 方法也没有。是否有我可以调用的 Windows API 函数?

0 投票
2 回答
6857 浏览

delphi - 如何更改 TCanvas (delphi) 的 textOut 的颜色?

我正在使用 TCanvas 上绘制文本,TextOut()但我需要不同的文本颜色。

我能做些什么?

0 投票
2 回答
634 浏览

delphi - 如何在 Delphi 上替换 TCanvas 上的颜色?

如何在 Delphi XE2 上替换 TCanvas 上的颜色?以下代码运行速度非常慢:

0 投票
2 回答
2492 浏览

delphi - 如何及时重绘画布?

问题是:我在桌面上绘制了一些矩形,而鼠标移动(矩形大小增加)我没有滞后、伪影等,一切都很好: 在此处输入图像描述

但是,当我将矩形的大小调整为低于原来的尺寸时,我得到了人工制品: 在此处输入图像描述

红色矩形是真正的矩形,其他都是错误。

完美的解决方案是重绘画布,但鼠标移动时我不能一直这样做。

移动后鼠标绝对停止时是否有解决方案?

更新

编码:

{ 表单道具:BorderStyle= bsNone AlphaBlend true, 150 Transparentcolor = true, clBlack }

0 投票
1 回答
221 浏览

c++ - 如果我将向量传递给另一个类,为什么 ROOT 只会让我将 TCanvas 向量的最终元素设置为另一个 TCanvas 向量?

问题

我想开始动态地将 TCanvas 从程序的“模型”部分动态传递到“视图”部分。我考虑这样做的方式是在启动时在 View 上创建我的 TCanvas,然后在填充图表后使用 View TCanvas 更新此 TCanvas。我创建了一个测试台,看看它是否可以工作。

我展示了一种工作方法和损坏的方法。

我正在使用 QT-ROOT,TQtWidget是一个自定义小部件,它本质上是对 TCanvas 的一种支持。

设置我的画布

这个作品

对应输出:

工作方法

尽管图表的顺序错误。

这不起作用

我将此方法转移到另一个类并通过信号/插槽将 TCanvas 传回。

然后将图形数据发送到这里:

这是此方法的输出:

尝试 2

目前我能看到的唯一错误是我在 SetupTab 中得到了这个:

0 投票
1 回答
3618 浏览

c++ - 在已编译的 ROOT (CERN) 应用程序中将 TCanvas 绘制到屏幕上

在屏幕上绘画的规则是什么?

我的最终目标是将 TCanvas 放入一个类中并从那里进行绘制,但现在我认为看一个不太复杂的示例可能会有所帮助。下面是一些在我的电脑上编译并绘制到屏幕上的代码。

您可能会注意到一些注释掉的行。如果我使用这些定义中的任何一个,在稍后调用的and方法canvas上使用适当的成员访问运算符,应用程序会在将空白 TCanvas 窗口打印到屏幕后崩溃。如果我更改并指向指针,它也会崩溃。UpdateDrawapph

如果我尝试使用任何类型的 ROOT 对象来实例化一个类,它会使应用程序崩溃。

现在,我正在使用 MSVC++ 进行编译cl.exe并与link.exe. 我正在开发一个 64 位的 Windows 7 Enterprise N。我正在尝试移植一个我在 Unix 中构建的应用程序,它new TApplication("name",0,0);在开始时很简单,main一切正常。

所以,重申一下:我怎样才能在这个操作系统和其他操作系统中将我的直方图显示在屏幕上?我怀疑我是否能够理解“为什么”,但是为其他阅读此内容的人写一些关于此的内容可能会很好。否则,只需一步一步地描述如何使用这些对象进行绘画就可以了。

非常感谢您对此的任何帮助;如果证明有用,我很乐意提供更多信息/示例。


更新:如果我用类似的东西编译它,它适用于我的特殊情况

不知道为什么。

请参阅https://root.cern.ch/phpBB3/viewtopic.php?f=3&t=3402&p=85329&hilit=Vector+stl+of+TH1F *+Objects#p85329 。

0 投票
3 回答
2609 浏览

delphi - 如何在 Delphi 中获得 TEdit 的画布?

我想缩短文件名以适应 TEdit,例如

不幸的是,这不会编译,因为 TEdit 确实Canvas直接具有属性。画布的字体度量是必需的。如何访问 TEdit 的画布?

MinimizeName在 Vcl.FileCtrl 中声明。)

0 投票
1 回答
1754 浏览

delphi - 如何删除用 Canvas 创建的矩形?

TPaintBox我有一个使用鼠标在组件中绘制的矩形。那么,如何在“鼠标向上事件”之后从我的应用程序中删除这个矩形(完全)TPaintBox

在此处输入图像描述

任何建议都将受到欢迎。

这是我绘制这个矩形的代码:

0 投票
1 回答
1047 浏览

delphi - 我的 TGraphic.Draw(Canvas, Rect) 代码不起作用

在 Delphi 10 Seattle 中,我需要将图像插入到 ImageList 中。该图像位于 TGraphicControl 的后代中(请参见下面的源代码)。插入似乎有效。但是,我在 ImageList 中只得到一个白色矩形:

我怀疑错误出现在位图画布上的绘图中?

0 投票
0 回答
47 浏览

c++ - 在根 TCanvas 中创建可变形贴图

我有一些数据正在通过 ROOT 的命令行界面在 TH2F 上绘制。我有一个名为 goodtree 的 TTree*,我在检测器中绘制事件的 XY 位置,如下所示:

我还想通过查看 r^2 与 theta 来制作归一化面积图:

这部分很好。我接下来要做的是将地图叠加到 XY 图上,并让它自动变形到 R^2T 图上的正确位置。我的意思是,这是一个粒子探测器,使用在 XY 方向具有圆形横截面的光电倍增管 (PMT)。我希望能够将地图叠加到 h1 上,显示这些 PMT 的轮廓(呈蜂窝状)。我也可以用脚本很快地做到这一点。

困难的一点是我希望能够在 XY 中定义此地图,并将其绘制在 R^2T 数据点的上方。有没有一种方法可以轻松做到这一点,而无需手动计算所有这些变形椭圆的位置、宽度和高度?