簡體   English   中英

有關SDL中的分辨率和精度

[英]regarding the resolution and accurary in SDL

我正在用SDL編寫程序。 我將屏幕設置為600x600。 然后,我在窗戶上畫一個圓圈。 我用點隨機拍攝整個屏幕,最后算出圓中有多少點,這可以用來估計圓的面積。 但是我發現,如果將窗口初始化為更大的值(例如1024 * 768),則相同的方法會降低面積計算的准確性(在很小的范圍內但仍不會那么小)。 我想知道增加Windows的分辨率對改善此問題的分辨率沒有幫助嗎? 那么,如何利用更大的分辨率呢?

然后,我在窗戶上畫一個圓圈。 我用點隨機拍攝整個屏幕,最后算出圓中有多少點,這可以用來估計圓的面積。

圓的面積等於pi*(r^2) 其中“ r”是圓半徑。

但是我發現如果我將窗口初始化為更大

除非隨機數生成器是完美的 ,否則您的方法將不會產生可靠的結果。這意味着它必須產生絕對完美的點均勻分布,這將不會發生。 另外,您還需要知道一個“命中”區域,這將是一個大問題。

如果您堅持要重新發明輪子(並出於未知原因避免使用pi*(r^2) ),則不要“拍攝隨機點”。 只需逐行掃描圖像,然后計算圓內的點數。 它可能比嘗試濫用偽隨機數生成器快得多。 而且,您可以加快處理速度(通過降低精度),而不是檢查每個像素,而要檢查每個第二個像素(和行),每個第三個像素,每個第四個像素等等(完美的均勻分布)。 它比您的PRNG濫用更加可靠和可預測。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM