package com.rutar; import java.util.*; import android.content.*; import android.graphics.*; import android.view.MotionEvent; import android.view.View; import com.rutar.android.canvas.*; import java.math.BigDecimal; public class Screensaver extends Android_Canvas { int S = 50; // Кол-во щупалец int N = 20; // Кол-во звеньев в каждом из них float x, y; float tx, ty; float k = (float) ((int)(Math.random() * 360) * Math.PI / 180); float d = (float) (Math.PI * 2 / S); // просто оптимизиация double[] a = new double[N]; // Углы поворота звеньев относительно друг-друга double len; // Длина одного звена private Paint paint; /////////////////////////////////////////////////////////////////////////////// public Screensaver (Context context) { super(context); paint = new Paint(); //paint.setStrokeWidth(2); paint.setFlags(Paint.HINTING_ON); } /////////////////////////////////////////////////////////////////////////////// @Override public void paint (Canvas c) { c.drawColor(Color.BLACK); // //if (c.getWidth() > c.getHeight()) { len = c.getHeight()/2/N; } //else { len = c.getWidth()/2/N; } // ///////////////////////////////////////////////////////////////////////////////// // //if ((int)(Math.random() * 50) == 0) { // //k = (float) ((int)(Math.random() * 360) * Math.PI / 180); // //} // ///////////////////////////////////////////////////////////////////////////////// // //a[0] += Math.sin(k)/10; // //for (int z = 1; z < N; z++) { // //a[z] = a[z] + (a[z - 1] - a[z]) * 0.1f; // //for (int j = 0; j < S; j++) { // //x = (float) (c.getWidth()/2); //y = (float) (c.getHeight()/2); // //for (int i = 1; i < N; i++) { // //paint.setColor(Color.rgb((int)(255 - 255 * i / N), 255, (int)(255 - 255 * i / N))); //tx = (float) (x + Math.cos(j * d + a[i]) * len); //ty = (float) (y + Math.sin(j * d + a[i]) * len); // //c.drawLine(x, y, tx, ty, paint); // //x = tx; //y = ty; // //} // //} // //} for (int z = 0; z < 3000; z++) { int x1 = (int) (Math.random()*c.getWidth()+Math.sin(1.5f)); int y1 = (int) (Math.random()*c.getHeight()+Math.sin(1.5f)); int x2 = (int) (Math.random()*c.getWidth()+Math.sin(1.5f)); int y2 = (int) (Math.random()*c.getHeight()+Math.sin(1.5f)); c.drawLine(x1, y1, x2, y2, paint); } paint.setColor(Color.YELLOW); //c.drawText("Display: " + c.getWidth() + "x" + c.getHeight(), 0, 15, paint); c.drawText("FPS: " + FPS.getFPS(), 0, 15, paint); } /////////////////////////////////////////////////////////////////////////////// }