easyx可以根据自己的需要设置坐标轴的比列大小吗

0

例如我开一个500,500的窗口,

但我需要坐标轴单位大小是1,可以把窗口等分吗

ava
黄洪飞

2019-12-2

0

我不太理解你的描述。你是想问,怎样设置 500 像素的长度为单位长度 1 是吗?

如果是的话,你不需要考虑怎么设置的问题,简单的将逻辑运算与显示分离就好了。运算的时候,你的坐标可以全部都是 0~1 之间的浮点数,显示的时候,再将这个逻辑坐标进行适当变换。

例如,你想实现用 500 像素表示单位长度 1,现在你有 2 个范围在 (0, 1) 之间的逻辑坐标点,要显示在 (500, 500) 的窗口上,可以简单的这么做:

// int x1 = 0.2;
// int y1 = 0.18;
// int x2 = 0.63;
// int y2 = 0.875;
line(int(x1 * 500 + 0.5), int(y1 * 500 + 0.5),
     int(x2 * 500 + 0.5), int(y2 * 500 + 0.5));
// 注:加 0.5 再取整,是简单的进行四舍五入
ava
慢羊羊

2019-12-2

技术讨论社区