将图表坐标转换为像素

2023-11-29

我应该在极坐标图中画一个圆圈,上面有一些文字。

我开始使用 PostPaint,获得了图表图形,因此我能够在上面绘制和编写自定义内容。

我的主要问题是位置。

例如。我想在 x 和 y 轴交叉的地方绘制 sg ,但我没有找到任何有效的方法将图形坐标(在我的示例中为 0,0)转换为像素坐标。

我怎样才能做到这一点?如何将图表坐标转换为像素?

.net4/winforms/vs2010/c#


所以,我解决了。

我处理 mschart 的 postpaint 事件:

private void chartMain_PostPaint(object sender, ChartPaintEventArgs e)
    {
        try
        {
            if (chartMain.ChartAreas.FirstOrDefault(a=>a.Name == "Default") == null)
                return;

            Graphics graph = e.ChartGraphics.Graphics;

            var day = Date.GetBoundaries(daySelectorMain.DateTimePickerDay.Value);
            var toDate = day.Item2; //it is maxdate value (max value of x axis)

            var centerY = (float)chartMain.ChartAreas["Default"].AxisY.ValueToPixelPosition(-80); //-80 is the min value of y (y axis)
            var centerX = (float)chartMain.ChartAreas["Default"].AxisX.ValueToPixelPosition(toDate.ToOADate());

            var origoY = (float)chartMain.ChartAreas["Default"].AxisY.ValueToPixelPosition(0);
            var origoX = (float)chartMain.ChartAreas["Default"].AxisX.ValueToPixelPosition(toDate.ToOADate());

            var radius = (float)(centerY - origoY) - 1;

            graph.DrawLine(System.Drawing.Pens.Blue,
                           new PointF(origoX, origoY),
                           new PointF(centerX, centerY));

            graph.FillEllipse(new SolidBrush(Color.White), centerX - radius, centerY - radius, radius * 2, radius * 2);
        }
        catch (System.Exception exc)
        {
            Debug.Assert(false, exc.Message);
        }
    }
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将图表坐标转换为像素 的相关文章

随机推荐

  • 用于替换多个缩写的 jQuery/Javascript 解决方案

    例如 我需要一些东西来解析字符串并遍历多个街道类型缩写并将其替换为完整单词 Rd 将变为 Road 这算是回答了here但我想要像下面这样带有单个对象的东西 因为这将是一个很长的列表 这将有助于保持正确的组织 var streets RD
  • Ruby 可执行文件无法在 Win10 和 Win7 上启动

    我用 Tk 编写了一个 ruby 应用程序 一切都很好 没有错误等 所以我用 Ocra 制作了一个 exe 一开始遇到了一些问题 但后来我解决了 Ocra 制作的 exe 没有错误 而且当它让你在编译之前尝试你的脚本时 没有任何问题 但是当
  • R Markdown 内联 LaTeX 方程:`$` ... `$` 与 `\(` ... `\)`

    title esc output html document r setup include FALSE knitr opts chunk set echo TRUE A An amount between 5 and 10 B An am
  • 将 Selenium WebDriver 与 Google Chrome 一起使用时,警报不会关闭。

    我有以下 Selenium 脚本用于在 rediff com 上打开警报 public class TestC public static void main String args throws InterruptedException
  • 使用 r 找到双峰分布中的局部最小值

    我的数据是预处理的图像数据 我想分开两个类 理论上 希望在实践中 最佳阈值是双峰分布数据中两个峰值之间的局部最小值 我的测试数据是 http www file upload net download 9365389 data txt htm
  • 将内联 SVG 转换为 Base64 字符串

    我想将内联 SVG 图像发送到 PHP 脚本 以使用 Imagick 将其转换为 PNG 为此 我必须知道如何在内联 SVG 上获取 Base64 字符串 对于画布对象 它是一个简单的 toDataURL 但这不适用于内联 SVG 因为它不
  • 带有 Facelets (jsf) 和 xhtml 的 Eclipse 自动完成(内容辅助)

    如何使用 Facelets 在 xhtml 页面中为 JSF 1 2 标记激活 Eclipse 3 5 WTP 内容辅助 它适用于 jsp 文件 但不适用于 xhtml 我用谷歌搜索了很多 在很多地方 包括 MyFaces wiki 都说
  • Python - 使用 pyqtgraph 快速绘图(16ms)?

    我需要使用 pyqtgraph 绘制连续输入 因此我使用循环缓冲区来保存数据 我使用 deque 和 maxlen 来完成这项工作 Python 2 7 numpy 1 9 2 pyqtgraph 0 9 10 from collectio
  • 在 上添加边框

    在另一篇文章中 我读到 如果我需要为除标题行之外的每一行添加边框 我应该使用 THEAD TBODY 所以我已将其添加到页面中 但我找不到如何将其应用到 TBODY 我是新手 所以请耐心等待 我可以在整个表格周围放置边框 但需要排除标题行
  • 实体框架代码优先软删除延迟加载

    所以我首先使用实体 框架代码 所以没有 edmx 我有一个带有 bool IsEnabled 的基实体类来执行软删除 我正在使用存储库模式 因此可以使用 IsEnabled 过滤掉针对存储库的所有查询 但是 每当我使用存储库获取 IsEna
  • 使用 str.split 函数拆分数据框中的列

    我试图将带有逗号分隔值的列拆分为 2 列 但 str split 函数返回带有 0 和 1 的列 而不是拆分字符串值 我有一个数据框 其中有一列 全名 其中有一个全名 并用逗号分隔姓氏和名字 我使用了 str split 函数 该函数在执行
  • 为什么 C++ Map 的 [] 运算符调用映射值的默认构造函数? [复制]

    这个问题在这里已经有答案了 我用g 编译了以下代码 执行该行时将调用构造函数A m 1 为什么会发生这种情况 我认为没有必要在这里调用构造函数 struct A int mem A int arg A int main unordered
  • 将所有 标签替换为 img 替代文本

    我知道如何在 php 中执行此操作 但我需要在 javascript jquery 中完成此操作 我正在尝试类似以下的事情 NewBox html OldBox html Replace
  • 对象使用原型函数名称而不是其属性

    我创建了两个函数A和B 将A作为B的原型 jsfiddle function A function B this name Class B B prototype A var b new B alert b name expected Cl
  • 使用 VBA 查找 MS Office 修订版和内部版本

    The 主要版本和次要版本可以使用 Office 应用程序找到Application Version 返回示例 15 0 Office 2013 12 0 Office 2007 我需要修订版和构建版本Office 应用程序的示例 微软 O
  • 如何使用 Autofac 和 ASP.NET Core 在控制器上启用属性注入?

    似乎确实没有一种简单的方法来确保控制器具有属性注入 解决这个问题的方法是单独注册所有控制器 这似乎有点违背了目的 这 FromServices 属性是removed他们特别提到应该由各个 IoC 容器来确保这种情况发生 我是否遗漏了一些明显
  • 使用 Spring Data JPA 时我的存储库无法自动初始化

    在探索了几个教程后 我尝试将 spring data jpa 添加到我的 spring mvc web 项目中 但我发现我的存储库无法自动初始化 我的服务类中出现 NullPointerException 请看我下面的示例代码 我的存储库
  • Lua 编程 - os.execute() 在 Windows 中不起作用

    我正在 pure Lua 中创建一个函数来扫描目录中的文件并将它们放在另一个文件中 我尝试的命令是 os execute dir B C Users Fernando workspace Organizator2 s1 gt C Users
  • 如何在eclipselink中访问多个租户?

    eclipselink 或 Hibernate 中的租户是一个很好的概念 可以将数据域彼此分开 我正在使用 eclipselink 和单表策略 有时需要访问多个租户的数据 例如出于管理目的 有没有好的方法可以实现这一目标 我不想跑遍所有租户
  • 将图表坐标转换为像素

    我应该在极坐标图中画一个圆圈 上面有一些文字 我开始使用 PostPaint 获得了图表图形 因此我能够在上面绘制和编写自定义内容 我的主要问题是位置 例如 我想在 x 和 y 轴交叉的地方绘制 sg 但我没有找到任何有效的方法将图形坐标