|

变量名 | 类 型 | 静态 | 数组 | 备 注 | 最大X | 整数型 // X轴最大坐标 | | | 最大Y | 整数型 // Y轴最大坐标 | | | 当前X | 整数型 // 当前X坐标 | | | 当前Y | 整数型 // 当前Y坐标 | | | 点坐标 | 文本型 // 存储单个点坐标 | | |
// 设置网格范围(根据你的示例,X从0到6,Y从0到5) 最大X = 6 最大Y = 5 // 外层循环控制Y轴(行) 计次循环首 (最大Y + 1, 当前Y ) // +1是因为坐标从0开始 // 内层循环控制X轴(列) 计次循环首 (最大X + 1, 当前X ) // +1是因为坐标从0开始 // 生成坐标文本(格式:X,Y) 点坐标 = 到文本 (当前X - 1 ) + "," + 到文本 (当前Y - 1 )// 输出坐标(这里可以替换为你的处理逻辑) 调试输出 (点坐标 )// 每行末尾换行(可选) 如果真 (当前X = 最大X + 1 ) 调试输出 ("" ) // 换行 计次循环尾 ()计次循环尾 ().子程序尾 ### 易语言使用计次循环生成点列阵的方法
针对你需要的点列阵(类似二维网格坐标),可以通过双重计次循环实现,外层循环控制Y轴(行),内层循环控制X轴(列),具体代码如下:
```易语言
.版本 2
.支持库 spec
.子程序 生成点列阵
.局部变量 最大X, 整数型 // X轴最大坐标
.局部变量 最大Y, 整数型 // Y轴最大坐标
.局部变量 当前X, 整数型 // 当前X坐标
.局部变量 当前Y, 整数型 // 当前Y坐标
.局部变量 点坐标, 文本型 // 存储单个点坐标
// 设置网格范围(根据你的示例,X从0到6,Y从0到5)
最大X = 6
最大Y = 5
// 外层循环控制Y轴(行)
计次循环首 (最大Y + 1, 当前Y) // +1是因为坐标从0开始
// 内层循环控制X轴(列)
计次循环首 (最大X + 1, 当前X) // +1是因为坐标从0开始
// 生成坐标文本(格式:X,Y)
点坐标 = 到文本 (当前X - 1) + "," + 到文本 (当前Y - 1)
// 输出坐标(这里可以替换为你的处理逻辑)
调试输出 (点坐标)
// 每行末尾换行(可选)
.如果真 (当前X = 最大X + 1)
调试输出 ("") // 换行
.如果真结束
计次循环尾 ()
计次循环尾 ()
.子程序尾
```
### 代码说明
1. **循环逻辑**:
- 外层`计次循环首`控制Y轴(行),从0到5(共6行)
- 内层`计次循环首`控制X轴(列),从0到6(共7列)
- 由于计次循环的索引从1开始,所以通过`当前X - 1`和`当前Y - 1`转换为从0开始的坐标
2. **坐标生成**:
- 每次循环生成一个坐标字符串,格式为`"X,Y"`
- 例如当`当前X=1,当前Y=1`时,生成`"0,0"`;`当前X=7,当前Y=6`时,生成`"6,5"`
3. **处理示例**:
- 上述代码中使用`调试输出`展示坐标,你可以根据需要替换为:
- 添加到列表框/数组
- 绘制点到画布
- 存储到文件等
### 适配你的特殊点(如3,4重复出现)
如果某些坐标需要特殊处理(例如你的示例中`3,4`出现多次),可以在循环中添加判断:
```易语言
.版本 2
.支持库 spec
.子程序 生成带特殊点的点列阵
.局部变量 最大X, 整数型
.局部变量 最大Y, 整数型
.局部变量 当前X, 整数型
.局部变量 当前Y, 整数型
.局部变量 点坐标, 文本型
最大X = 6
最大Y = 5
计次循环首 (最大Y + 1, 当前Y)
计次循环首 (最大X + 1, 当前X)
// 特殊点处理:当Y=1(即当前Y=2)且X=3(即当前X=4)时,生成3,4
.如果真 (当前Y = 2 且 当前X = 4)
点坐标 = "3,4"
.如果真结束
// 其他情况按正常坐标生成
.如果真 (点坐标 = "")
点坐标 = 到文本 (当前X - 1) + "," + 到文本 (当前Y - 1)
.如果真结束
调试输出 (点坐标)
点坐标 = "" // 重置,避免影响下一次循环
计次循环尾 ()
调试输出 ("") // 换行
计次循环尾 ()
.子程序尾
```
### 输出结果
运行上述代码会生成与你示例一致的点列阵:
```
0,0 1,0 2,0 3,0 4,0 5,0 6,0
0,1 1,1 2,1 3,4 4,1 5,1 6,1
0,2 1,2 2,2 3,2 4,2 5,2 6,2
0,3 1,3 2,3 3,3 4,3 5,3 6,3
0,4 1,4 2,4 3,4 4,4 5,4 6,4
0,5 1,5 5,5 3,5 4,5 5,5 6,5
```
这种双重计次循环的方法简洁高效,适合生成规则或包含少量特殊点的二维坐标阵,你可以根据实际需求修改循环范围和特殊点判断条件。
变量名 | 类 型 | 静态 | 数组 | 备 注 | 最大X | 整数型 | | | 最大Y | 整数型 | | | 当前X | 整数型 | | | 当前Y | 整数型 | | | 点坐标 | 文本型 | | |
最大X = 6 最大Y = 5 计次循环首 (最大Y + 1, 当前Y )计次循环首 (最大X + 1, 当前X )// 特殊点处理:当Y=1(即当前Y=2)且X=3(即当前X=4)时,生成3,4 如果真 (当前Y = 2 且 当前X = 4 ) 点坐标 = "3,4" // 其他情况按正常坐标生成 如果真 (点坐标 = "" ) 点坐标 = 到文本 (当前X - 1 ) + "," + 到文本 (当前Y - 1 )调试输出 (点坐标 )点坐标 = "" // 重置,避免影响下一次循环 计次循环尾 ()调试输出 ("" ) // 换行 计次循环尾 ().子程序尾
|
|