我正在绘制一个包含2000多个点的图形,以pdf文件形式显示。 PDF的分辨率是612 x 792.由于宽度是612,因此我只能绘制612点到pdf。我将1点映射到1个像素。我怎样才能将所有2000多个样本绘制成PDF格式。我正在使用这个lib http://www.vulcanware.com/cpp_pdf/index.html。显示更多分数然后分辨率
1
A
回答
1
选项1:使用x = (x * 612)/2000
来缩放分数。这意味着如果2点彼此接近(包括“相似的y”),它们将相互覆盖。
选项2:将每个点视为正方形;并计算已经缩放的“左边缘x”和“右边缘x”的浮点值(left_x = ((x-width/2.0) * 612.0)/2000.0; right_x = ((x+width/2.0) * 612.0)/2000.0;
),并且通过针对每个目的地计算“正方形重叠的目的像素的面积”来使用抗锯齿绘制正方形与正方形重叠的像素。在这种情况下,您需要执行“dest_pixel = max(dest_pixel + area,1);”在正方形重叠时钳位像素值。选项3:将整个东西旋转90度,使“x轴”沿页面垂直向下(如果需要,可以分成多个页面);如果这对y造成问题,那么使用上面的y选项之一。
请注意,“选项2”可同时在两个(垂直和水平)方向上完成。
left_x = point_x/MAX_SRC_X * MAX_DEST_X;
right_x = (point_x + 1)/MAX_SRC_X * MAX_DEST_X;
top_y = point_y/MAX_SRC_Y * MAX_DEST_Y;
bottom_y = (point_y + 1)/MAX_SRC_Y * MAX_DEST_Y;
然后有一个“对于被影响的每一行”循环计算每行有多少影响,如:
for(int y = top_y; y < bottom_y; y++) {
row_top = fmax(y, top_y);
row_bottom = fmin(y+1, bottom_y);
row_weight = row_bottom - row_top;
要做到这一点,通过确定广场的边缘,就像启动
然后有一个类似的“为每一列被实现”循环,如:
for(int x = left_x; x < right_x; x++) {
column_left = fmax(x, left_x);
column_right = fmin(x+1, right_x);
column_weight = column_right - column_left;
然后计算面积对于像素,设置像素,并完成循环:
dest_pixel_area = row_weight * column_weight;
pixel[y][x].red = min(pixel[y][x].red + dest_pixel_area * red, MAX_RED);
pixel[y][x].green = min(pixel[y][x].green + dest_pixel_area * green, MAX_GREEN);
pixel[y][x].blue = min(pixel[y][x].blue + dest_pixel_area * blue, MAX_BLUE);
}
}
注意:以上所有代码均未经过测试和简化。将环路分解为“第一行/列;仅用于中间区域的循环;然后是最后一行/列”可以更快地移除大部分fmin
/fmax
。
如果你只需要做到这一点的一个方向,删除的方向,你不需要和使用1.0
为相应row_weight
或column_weight
部分。
相关问题
- 1. 检测显示分辨率
- 2. Winform显示屏分辨率
- 3. 如果屏幕分辨率然后显示div
- 4. 多分辨率
- 5. 测试一个高分辨率显示器上低分辨率
- 6. 多屏分辨率
- 7. 如何根据显示器分辨率
- 8. 显示警告屏幕分辨率
- 9. 剃刀:显示器分辨率
- 10. 如何检索显示分辨率?
- 11. 设置UWP应用显示分辨率
- 12. 检测服务器显示分辨率
- 13. 高分辨率UITabBar图标在低分辨率屏幕上全尺寸显示
- 14. 如何阅读屏幕分辨率 - 并更改此分辨率?
- 15. 支持多种分辨率时的分辨率与尺寸
- 16. 更改图像分辨率
- 17. 更改屏幕分辨率
- 18. 多分辨率布局
- 19. setContentView为多个分辨率
- 20. 多分辨率小波分解代码
- 21. RawInput分辨率
- 22. WinForm分辨率
- 23. 在Python中更改数据分辨率
- 24. 无法显示比CDC区域更高分辨率的位图
- 25. Xcode 6显示更新iPhone 6/6 +时的iPhone 5分辨率?
- 26. 如何在android中显示更大的分辨率图像?
- 27. 更改显示分辨率游戏实践
- 28. 使用java永久检测并更改显示分辨率
- 29. 如何在Blogger上显示更高分辨率的缩略图
- 30. iphone OS 4.0-显示更高分辨率图像的问题
可能重复的[Pdf分辨率缩放绘图](http://stackoverflow.com/questions/43301673/pdf-resolution-scaling-for-plotting) – chtz