java - 所有象限的 DDA 算法
问题描述
我想知道如何编辑此 DDA。当我有这个值时: (x1 = 150,y1 = 20,x2 = 100,y2 = 80) 它工作得非常好,因为它在第一象限。
但是如果我想从另一个象限中栅格化线
- 例如,值为 (x1 = 10,y1 = 20,x2 = 100,y2 = 80)
- 这将使直线
因此,我无法将此算法编辑到所有 4 个象限。
public void rasterize(int x1, int y1, int x2, int y2, int color) {
int x, y, krok;
float dy, dx;
dx = x2 - x1;
dy = y2 - y1;
if(Math.abs(dx)>Math.abs(dy)){
krok=(int)(Math.abs(dx));
} else {
krok=(int)(Math.abs(dy));
}
dx = dx / (float)krok;
dy = dy/ (float)krok;
x=x1;
y=y1;
for(int i=1;i<=krok;i++){
raster.setPixel(x, y, 0xffff00);
x+=dx;
y+=dy;
}
}
解决方案
推荐阅读
- c# - Devexpress Gridview - 允许某些行可编辑,而不是全部
- css - 如何区分 mat-select 样式和 mat-paginator mat-select 样式?
- java - Android Studio 请求位置权限弹窗
- cordova - 在cordova中使用cordova-plugin-ionic-webview时设置index.html路径
- php - 在php邮件中回显图像,显示错误
- python - Python中的范围列表排序
- r - 将工作簿中的工作表列表转换为数据框并按行绑定
- python - 使用python在一行中有多个参数的for循环
- java - Http Post - 通讯失败 - 为什么?
- javascript - 通过 GTM 向网站添加脚本是个好主意吗?