同步操作将从 dwing/sharecode 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
public class DrawUtil {public interface XZConsumer {void accept(int x, int z);}// (tx - x) * dz == (tz - z) * dxpublic static void drawLine(final float sx, final float sz, final float tx, final float tz,final XZConsumer callback) {final double dx = (double)tx - sx, dz = (double)tz - sz, d = Math.sqrt(dx * dx + dz * dz);final double stepCountX, stepCountZ;final int stepX, stepZ;double countX, countZ;int x = (int)Math.floor(sx);int z = (int)Math.floor(sz);//@formatter:offif (dx < 0) { stepX = -1; stepCountX = -d / dx; countX = stepCountX * (sx - x); }else { stepX = 1; stepCountX = d / dx; countX = stepCountX * (x - sx + 1); }if (dz < 0) { stepZ = -1; stepCountZ = -d / dz; countZ = stepCountZ * (sz - z); }else { stepZ = 1; stepCountZ = d / dz; countZ = stepCountZ * (z - sz + 1); }//@formatter:onfinal int txi = (int)Math.floor(tx);final int tzi = (int)Math.floor(tz);for (; ; ) {callback.accept(x, z);if (x == txi && z == tzi)return;if (countX < countZ) {countX += stepCountX;x += stepX;} else {countZ += stepCountZ;z += stepZ;}}}public static void main(String[] args) {drawLine(1.1f, 1.9f, 5.1f, 5.9f, (x, z) -> System.out.println(x + ", " + z));System.out.println("---");drawLine(1.1f, 1.9f, 1.1f, 5.9f, (x, z) -> System.out.println(x + ", " + z));System.out.println("---");drawLine(1.1f, 1.9f, 5.1f, 1.9f, (x, z) -> System.out.println(x + ", " + z));System.out.println("---");drawLine(1.1f, 1.9f, 1.1f, 1.9f, (x, z) -> System.out.println(x + ", " + z));System.out.println("---");drawLine(-1.1f, -1.9f, -5.1f, -5.9f, (x, z) -> System.out.println(x + ", " + z));}}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。