绘制真实坐标
回答
在某些时候,它们需要转换为整数来绘制实际像素。
但是,一般来说,你做而不是只想将每个float转换为int,然后绘制 - 你几乎肯定会弄得一团糟。相反,您需要/想要缩放浮点数,,然后将缩放值四舍五入为整数。在大多数情况下,您会希望使缩放因子可变,以便用户可以根据需要放大和缩小。
另一种可能性是让硬件处理大部分工作 - 您可以使用OpenGL(举一个例子)渲染你的点,把它们作为内部浮点,让驱动程序/硬件处理像缩放转换为整数。这有一个相当陡峭的成本预先(学习足够的OpenGL,以使它做任何有用的事情),但也可以有相当可观的回报,如快速,基于硬件的渲染,并使它相对容易处理一些事情像缩放和(如果您需要它)能够像2D一样容易地显示3D点。
编辑:(主要是对评论的回应):最终归结为:屏幕的分辨率低于浮点数的分辨率。例如,真正高分辨率的屏幕可能会水平显示2048个像素 - 这是11位分辨率。即使是单精度浮点数也有大约24位的精度。不管你怎么做,将24位分辨率降低到12位分辨率都会失去一些东西 - 通常是lot。
这就是为什么你几乎有有让你的比例因子可变 - 所以用户可以选择是否缩小,以降低分辨率看到整个图片,或放大看到一个高分辨率的小部分。
由于提到了子像素分辨率:它确实有帮助,但只有一个小。这不会解决映射到单个像素的上千种不同的项目。
你必须将它们转换为整数,然后将它们传递给函数一样MoveTo()
和LineTo()
。
这些float
值代表什么?我会假设他们是一些协调员。你需要知道两件事情:
- 源分辨率(即在这些坐标绘制的DPI)
- ,你需要的范围,以解决
之后,这成为一个问题,将点转换为合适的整数坐标(根据您的屏幕分辨率)。
编辑:一个简单的公式将是:
X(dst) = X(src) * DPI(dst)/DPI(src)
比例。例如,将所有积分值乘以10.将浮点值乘以10.0,然后截断或舍入(您的选择)。现在情节正常。
这会给你在图形上额外的精确度。请记住看图片时的比例因子。
否则转换彩车绘制之前为int。
你可以尝试使用GDI +,而不是GDI,它有使用浮动坐标功能。
- 1. 坐标X Y绘制Android
- 2. Microsoft Chart绘制点坐标
- 3. 绘制线的坐标
- 4. ImageMagick绘制翻译坐标
- 5. 绘制图像坐标
- 6. 坐标绘制大厅图
- 7. 绘制真实图形(graphviz?)
- 8. 用真实坐标替换obj文件几何顶点坐标3D坐标
- 9. 在坐标轴上绘制标记
- 10. 使用坐标绘制一条线
- 11. 绘制坐标线使用Matplotlib
- 12. 在Android中绘制kml坐标Google Map
- 13. 在Matlab中绘制球坐标系
- 14. 在翻转的Java坐标中绘制
- 15. 绘制坐标为矩阵matplotlib蟒蛇
- 16. 绘制足迹而不是坐标
- 17. 用多个坐标轴绘制
- 18. 绘制坐标之间的形状
- 19. 绘制在非规范化坐标 - glFrustum
- 20. 我如何使坐标绘制螺旋
- 21. Java /图形:绘制三维坐标?
- 22. 在wpf中绘制坐标区域
- 23. Java输入坐标和绘制线
- 24. 用极坐标绘制正方形
- 25. 从.txt文件中绘制坐标
- 26. 如何绘制一个政治坐标绘制
- 27. 用openpyxl绘制折线图 - 坐标轴/绘图问题
- 28. matlabs只能在一边绘制每个绘图的坐标轴
- 29. 如果坐标相交,ol3重绘绘制交互模式
- 30. ccDrawLine绘图线坐标
GDI?呃..这真的很老.. – Macke 2010-02-14 14:25:33