「java彩色螺旋」彩色螺旋图案

博主:adminadmin 2023-01-13 15:06:09 245

本篇文章给大家谈谈java彩色螺旋,以及彩色螺旋图案对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

java怎样绘制螺旋曲线

用极坐标方程,一个点一个点的画。给你段我以前写的程序,虽然不是螺旋曲线,但也差不多。import java.awt.*;

import javax.swing.*;public class Spirograph extends JApplet {

public static void main(String s[]) {

JFrame frame = new JFrame();

frame.setTitle("Spirograph");

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

JApplet applet = new Spirograph();

applet.init();

frame.getContentPane().add(applet);

frame.pack();

frame.setVisible(true);

}

public void init() {

JPanel panel = new SpiroPanel();

getContentPane().add(panel);

}

}class SpiroPanel extends JPanel{

int nPoints = 1000;

double r1 = 60;

double r2 = 50;

double p = 70;

public SpiroPanel() {

setPreferredSize(new Dimension(400, 400));

setBackground(Color.white);

} public void paintComponent(Graphics g) {

super.paintComponent(g);

Graphics2D g2 = (Graphics2D)g;

g2.translate(200,200);

int x1=(int)(r1+r2-p);

int y1=0;

int x2;

int y2;

for (int i=0; inPoints; i++) {

double t = i*Math.PI/90;

x2 = (int)((r1+r2)*Math.cos(t)-p*Math.cos((r1+r2)*t/r2));

y2 = (int)((r1+r2)*Math.sin(t)-p*Math.sin((r1+r2)*t/r2));

g2.drawLine(x1, y1, x2, y2);

x1 = x2;

y1 = y2;

}

}

}

java编程题1) 显示螺旋方阵。 螺旋方阵将1开始的自然数由方阵的最外圈向内螺旋方式地顺序排列。

public class Cat {

/**

* @param args

*/

public static void main(String[] args) {

int number = 5;

int[][] arys = printCircle(number);

for (int i = 0; i number; i++) {

for (int j = 0; j number; j++) {

System.out.print(arys[i][j] + "\t");

}

System.out.println();

}

}

// 1 2 3 4 5

// 16 17 18 19 6

// 15 24 25 20 7

// 14 23 22 21 8

// 13 12 11 10 9

private static int[][] printCircle(int number) {

int[][] ary = new int[number][number];

int rightLen;

int downLen;

int leftLen;

int upLen;

int rightRow = 0;

int rightCol = 0;

int leftRow = number - 1;

int leftCol = number - 1;

int downRow = 1;

int downCol = number - 1;

int upRow = number - 2;

int upCol = 0;

int digit = 1;

while(number 0){

rightLen = number;

downLen = number - 1;

leftLen = number - 1;

upLen = number - 2;

//Step 1: print to right

for(int i = 0, temp = rightCol; i rightLen; i++){

ary[rightRow][temp++] = digit++;

}

//Step 2: print to down

for(int j = 0, temp = downRow; j downLen; j++){

ary[temp++][downCol] = digit++;

}

//move left

for(int m = 0, temp = leftCol - 1; m leftLen; m++){

ary[leftRow][temp--] = digit++;

}

//move up

for(int n = 0, temp = upRow; n upLen; n++){

ary[temp--][upCol] = digit++;

}

number = number - 2;

//increas/decrease the row and column

rightRow++;

rightCol++;

downRow++;

downCol--;

leftRow--;

leftCol--;

upRow--;

upCol++;

}

return ary;

}

}

-----------------for 8 --------------

1 2 3 4 5 6 7 8

28 29 30 31 32 33 34 9

27 48 49 50 51 52 35 10

26 47 60 61 62 53 36 11

25 46 59 64 63 54 37 12

24 45 58 57 56 55 38 13

23 44 43 42 41 40 39 14

22 21 20 19 18 17 16 15

如何用JAVA实现螺旋矩阵

import java.io.*;public class RingDemo {

public static void main(String[] args) {

String strIn = "";

System.out.print("请输入矩阵的行列数:");

InputStreamReader input = new InputStreamReader(System.in);

BufferedReader buff = new BufferedReader(input);

try {

strIn = buff.readLine();

} catch (IOException e) {

System.out.println(e.toString());

}

int int1 = Integer.parseInt(strIn);

int n = int1;

System.out.println("这是行列数为" + n + "的螺线型数组:");

int intA = 1; // 初始化

int[][] array = new int[n][n];

int intB;

if (n % 2 != 0) {

intB = n / 2 + 1; // 奇数时i循环次数

} else

intB = n / 2; // 偶数时i循环次数

for (int i = 0; i intB; i++) { // 从外到里循环

// 从左到右横的开始

for (int j = i; j n - i; j++) {

array[i][j] = intA;

intA++;

}

// 从上到下纵

for (int k = i + 1; k n - i; k++) {

array[k][n - i - 1] = intA;

intA++;

}

// 从右到左横

for (int l = n - i - 2; l = i; l--) {

array[n - i - 1][l] = intA;

intA++;

}

// 从下到上纵

for (int m = n - i - 2; m i; m--) {

array[m][i] = intA;

intA++;

}

}

// 输出数组

for (int i = 0; i n; i++) {

for (int j = 0; j n; j++) {

System.out.print(array[i][j] + " ");

}

System.out.println();

} }

}

求程序画的 点阵渐开线(点阵螺旋线)代码 啥语言都可 最好是JAVA C# AS3 等 当然其它语言也可以 谢谢

用Java语言画的点阵渐开线代码如下

import java.awt.Graphics;

import java.util.ArrayList;

import java.util.List;

import javax.swing.JFrame;

public class Involute extends JFrame{

 Involute(){

  super("点阵渐开线");

  setSize(400, 400);

  setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

  setLocationRelativeTo(null);

  setVisible(true);

 }

 public void paint(Graphics g){

  super.paint(g);

  double alfa=10;

  double r=10;

  double theta=0;

  ListInteger lx=new ArrayListInteger();

  ListInteger ly=new ArrayListInteger();

  int CenterX=this.getWidth()/2; 

  int CenterY=this.getHeight()/2;

  for(int i=0;i60*2;i++){

   int x=CenterX+(int)(r*Math.cos((theta+alfa)*Math.PI/180)+(theta+alfa)*Math.PI/180*r*Math.sin((theta+alfa)*Math.PI/180));

   lx.add(x);

   int y=CenterY-(int)(r*Math.sin((theta+alfa)*Math.PI/180)-(theta+alfa)*Math.PI/180*r*Math.cos((theta+alfa)*Math.PI/180));

   ly.add(y);

   theta=theta+6;

  }

  for(int i=0;i60*2;i++){

   g.fillOval(lx.get(i), ly.get(i), 5, 5);

  }

 }

 public static void main(String[] args) {

  new Involute();

 }

}

运行结果

java螺旋矩阵求助!

package cn.com.micc.javatwo; //根据实际情况修改

//蜗牛螺旋矩阵 请仔细研究矩阵阶数变化时数据的迁移规律

//上一阶矩阵会"整体"向右上或左下移动

public class AntiClockWiseArray {

public static int[][] getResult(int n) {

int[][] n1 = new int[1][1];

n1[0][0] = 1;

if (n == 1)

return n1;

int[][] result = new int[n][n];

int[][] temp = getResult(n - 1);

if (0 == (n - 1) % 2)

result = LeftDownMove(temp, n - 1); //n-1阶矩阵向左下移动

else

result = RightUpMove(temp, n - 1); //n-1阶矩阵向右上移动

return result;

}

public static int[][] LeftDownMove(int[][] in, int moment) {

int temp = moment * moment;

int nums = moment * 2 + 1;

int[][] out = new int[moment + 1][moment + 1];

//新矩阵补入上一阶矩阵的值

for (int i = 0; i moment; ++i)

for (int j = 0; j moment; ++j)

out[i + 1][j] = in[i][j];

//两个循环添加新矩阵新值

for (int k = 0; k moment + 1; ++k)

out[0][k] = temp + nums - k;

for (int l = 1; l moment + 1; ++l)

out[l][moment] = temp + nums - moment - l;

return out;

}

public static int[][] RightUpMove(int[][] in, int moment) {

int temp = moment * moment;

int nums = moment * 2 + 1;

int[][] out = new int[moment + 1][moment + 1];

//新矩阵补入上一阶矩阵的值

for (int i = 0; i moment; ++i)

for (int j = 0; j moment; ++j)

out[i][j + 1] = in[i][j];

//两个循环添加新矩阵新值

for (int k = 0; k moment + 1; ++k)

out[k][0] = temp + 1 + k;

for (int l = 1; l moment + 1; ++l)

out[moment][l] = temp + moment + 1 + l;

return out;

}

public static void printArray(int[][] temp, int n) {

//格式化打印矩阵

for(int i = 0; i n; ++i)

{

for(int j = 0; j n; ++j)

System.out.printf("%5d", temp[i][j]);

System.out.println();

}

}

public static void main(String[] args) {

printArray(getResult(6), 6); //输入阶数

}

}

output:

10阶

82 81 80 79 78 77 76 75 74 73

83 50 49 48 47 46 45 44 43 72

84 51 26 25 24 23 22 21 42 71

85 52 27 10 9 8 7 20 41 70

86 53 28 11 2 1 6 19 40 69

87 54 29 12 3 4 5 18 39 68

88 55 30 13 14 15 16 17 38 67

89 56 31 32 33 34 35 36 37 66

90 57 58 59 60 61 62 63 64 65

91 92 93 94 95 96 97 98 99100

java彩色螺旋的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于彩色螺旋图案、java彩色螺旋的信息别忘了在本站进行查找喔。