我只是在玩Android Studio位图,并通过迭代为我的应用程序创建了一个点状背景。
constant = 60;
int padding_X = (int) Math.floor((width % constant)/2f);
if (padding_X == 0) {
padding_X = (int) Math.floor(constant / 2);
}
int padding_Y = (int) Math.floor((height % constant)/2f);
if (padding_Y == 0) {
padding_Y = (int) Math.floor(constant/2);
}
System.out.println("padding X: "+padding_X);
System.out.println("padding Y: "+padding_Y);
int max_xn = Math.round((width-(padding_X*2)) / constant);
int max_yn = Math.round((height-(padding_Y*2)) / constant);
System.out.println("max xn: "+max_xn);
System.out.println("max yn: "+max_yn);
point_matrix = new int[max_xn+1][max_yn+1][2];
lens = new int[2];
for (int yn = 0; yn <= max_yn; yn++) {
int y = (int) (padding_Y + (yn*constant));
for (int xn = 0; xn <= max_xn; xn++) {
int x = (int) (padding_X + (xn*constant));
System.out.println("point @ x: "+x+" y: "+y);
canvas.setPixel(x,y,Color.parseColor("#ffffff"));
point_matrix[xn][yn][0] = x;
point_matrix[xn][yn][1] = y;
}
}
runOnUiThread(() -> {
iv0.setImageBitmap(canvas);
});
lens[0] = max_xn+1;
lens[1] = max_yn+1;
我还将每个白色像素添加到一个三维数组int[][][]中。该数组包含用于索引点的xn和yn。最后一个数组包含屏幕坐标。示例:{5,1,{100,250}} 5是x轴上的点索引,1是y轴上的索引,100和250是位图上的坐标。
我希望能找到一种方法来找出三维阵列上的所有点在一定的半径从中心。
我的一个计划是迭代3dim数组中的所有元素,用毕达哥拉斯定理或类似的方法计算到中心的距离,但这将是非常低效的,因为这将需要做多次。
最终的计划是让所有的点从中心开始以圆周运动的方式消失。每个“半径间隔”之间有一个延迟。
1条答案
按热度按时间u0njafvf1#
使用三角函数:)