坐标系统转换C++
时间: 2023-08-12 18:18:26 浏览: 54
坐标系统转换主要包括从屏幕坐标系到世界坐标系的转换,以及从世界坐标系到屏幕坐标系的转换。下面是一个简单的 C++ 代码示例,可以实现这两种转换:
```c++
// 屏幕坐标系到世界坐标系的转换
vec2 ScreenToWorld(vec2 pos, vec2 screen_size, vec2 world_size)
{
float x = pos.x / screen_size.x * world_size.x;
float y = pos.y / screen_size.y * world_size.y;
return vec2(x, y);
}
// 世界坐标系到屏幕坐标系的转换
vec2 WorldToScreen(vec2 pos, vec2 screen_size, vec2 world_size)
{
float x = pos.x / world_size.x * screen_size.x;
float y = pos.y / world_size.y * screen_size.y;
return vec2(x, y);
}
```
其中,`vec2` 表示一个二维向量,具体的实现可以使用 C++ 标准库中的 `std::vector` 或者自定义的结构体。`ScreenToWorld` 函数将屏幕坐标系中的位置 `pos` 转换为世界坐标系中的位置,并且需要提供屏幕的大小 `screen_size` 和世界的大小 `world_size`。`WorldToScreen` 函数则是将世界坐标系中的位置 `pos` 转换为屏幕坐标系中的位置,同样需要提供两个坐标系的大小。
相关推荐
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)