簡體   English   中英

將X坐標從一種分辨率轉換為另一種

[英]Convert X Coordinate from one Resolution to another

通常我會這樣做以將一種分辨率轉換為另一種分辨率:

int newX = (x / oldResolutionX) * newResolutionX;

但是這次我不能使用它,我也無法理解數學(從來沒有真正擅長數學,請原諒我)。 無論如何,我的分辨率為1280x720,我想將這樣的點轉換為(720/360): 新分辨率的圖片

寬度是854,高度是720,因此我不必對y坐標進行轉換。 但是,這是(對我來說)棘手的部分:0並不是實際的0。X始於-107,結束於747。你們能向我解釋一下我如何將1280x720的(720/360)轉換為該分辨率嗎? 在此先感謝您,並感謝您數學不好。

因此,您需要從[0 ... 1280]到[-107 ... 747]的線性映射,而y保持不變。

int newX = (int)((x / 1280.0) * 854.0) -107

那么,這里發生了什么?

  • x將在0到1280之間變化。
  • 如果x == 0:(0/1280)* 854將為0,結果等於-107。
  • 如果x == 1280:(1280/1280)* 854 = 854:結果將為747

一些說明:

  • .0用於強制浮點類型。
  • (int)將其轉換回整數

暫無
暫無

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

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