我正在繪製一個包含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. RDP多顯示器限制分辨率
- 2. Winform顯示屏分辨率
- 3. 檢測顯示分辨率
- 4. 多分辨率/分辨率C++容器
- 5. 多分辨率
- 6. 如果屏幕分辨率然後顯示div
- 7. 測試一個高分辨率顯示器上低分辨率
- 8. 多屏分辨率
- 9. 檢測服務器顯示分辨率
- 10. 顯示警告屏幕分辨率
- 11. 如何檢索顯示分辨率?
- 12. 如何根據顯示器分辨率
- 13. 設置我的顯示分辨率
- 14. 剃刀:顯示器分辨率
- 15. 8位PictureBox顯示分辨率
- 16. Java - LWJGL顯示屏分辨率與JComboBox
- 17. 設置UWP應用顯示分辨率
- 18. 數學分辨率
- 19. 高分辨率UITabBar圖標在低分辨率屏幕上全尺寸顯示
- 20. 如何閱讀屏幕分辨率 - 並更改此分辨率?
- 21. 支持多種分辨率時的分辨率與尺寸
- 22. 有沒有辦法以較低的分辨率保存位圖,然後Jpeg?要更改分辨率手冊?
- 23. 更改屏幕分辨率
- 24. 更改圖像分辨率
- 25. setContentView爲多個分辨率
- 26. 多分辨率圖標
- 27. ios多分辨率動畫
- 28. 多分辨率佈局
- 29. Android Unity3D多重分辨率
- 30. Android多屏分辨率
可能重複的[Pdf分辨率縮放繪圖](http://stackoverflow.com/questions/43301673/pdf-resolution-scaling-for-plotting) – chtz