javaのタグがつけられたコード一覧

Java 回転鮨

import javax.swing.*;
import java.awt.*;
import java.math.*;
import java.awt.event.*;

class rotSushi {
    public static void main ( String args[] ) {
        MyFrame mf = new MyFrame("rotSushi");
        mf.setVisible(true);
    }
}

class MyFrame extends JFrame implements ActionListener {
    Container contentPane = getContentPane();
    Sushi sushi = new Sushi();
    JPanel p = new JPanel();
    MyFrame ( String title ) {
        setTitle(title);
        setSize(512,512);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        p.add(sushi);
        contentPane.add(p);
        Timer tm = new Timer(30,this);
        tm.start();
    }
    public void actionPerformed ( ActionEvent e ) {
        this.repaint();
        sushi.angle = (sushi.angle+1) % 360;
    }
}

class Sushi extends JLabel {
    public static int angle=0;
    Sushi () {
        setText("鮨");
        setForeground(Color.RED);
        setPreferredSize(new Dimension(512,512));
        setFont(new Font("MS 明朝",Font.BOLD,140));
        setHorizontalAlignment(JLabel.CENTER);
    }
    @Override
    public void paintComponent ( Graphics g ) {
        Graphics2D g2 = (Graphics2D) g;
        g2.rotate(Math.toRadians(angle),256,256);
        super.paintComponent(g);
    }
}

Java なぜかどんどん小さくなるコッホ曲線

import java.applet.Applet;
import java.awt.*;
import java.awt.event.*;

public class Koch4 extends Applet{
    int times=1;
    Choice timesChoice;
    double xOrig=5.0;
    double yOrig=0.0;
    double length;

    public void init(){
        timesChoice=new Choice();
        for(int i=1;i<=10;i++){
            timesChoice.addItem(""+i);
        }
        add(timesChoice);
        add(new Label("times"));
        timesChoice.select(times-1);
        timesChoice.addItemListener(new ItemAdp());

    }

    class ItemAdp implements ItemListener{
        public void itemStateChanged(ItemEvent e){
            if(e.getSource()==timesChoice){
                times=timesChoice.getSelectedIndex()+1;
                repaint();
            }
        }
   }

    public void paint(Graphics g){
        double angle=0.0;
        xOrig=5.0;
        yOrig=0.0;

        int width=getSize().width;
        int height=getSize().height;
        int pointN=(int)Math.pow(4,times);
        length=(double)(width-10)/pointN;
        g.setColor(Color.lightGray);
        g.fillRect(0,0,width,height);
        g.setColor(Color.red);
        drawKoch(g,times,angle);
    }

    public void drawKoch(Graphics g,int n,double angle){
        double x,y,angleR;

        if(n<=0){
            angleR=Math.PI/180*angle;
            x=length*Math.cos(angleR)+xOrig;
            y=length*Math.sin(angleR)+yOrig;
            g.drawLine((int)xOrig,(int)(200-yOrig),(int)x,(int)(200-y));
            xOrig=x;
            yOrig=y;
            return;
        }
        drawKoch(g,n-1,angle);
        drawKoch(g,n-1,angle+90);
        drawKoch(g,n-1,angle);
        drawKoch(g,n-1,angle-90);
        drawKoch(g,n-1,angle);
    }
}

Java [JMF] 最近投稿されたコード [JMF]USBカメラのURLを取得する(とりあえず動いた)

import java.util.Vector;

import javax.media.*;
import javax.media.format.YUVFormat;

public class ImageView {

	public static void main(String args[]) throws Exception {
		Vector deviceList = CaptureDeviceManager.getDeviceList(new YUVFormat()); // なんかよくわからないけどYUVFormatで僕の環境ではUSBカメラの情報を取得できた
		for (Object captureDeviceInfoObj : deviceList) {
			CaptureDeviceInfo captureDeviceInfo = (CaptureDeviceInfo) captureDeviceInfoObj;
			MediaLocator locator = captureDeviceInfo.getLocator();

//			System.out.println(locator.getProtocol());       // こいつは落ちる・・・
			System.out.println(captureDeviceInfo.getName()); // が、こっちで接続できるっぽい

			//フォーマット一覧を取得してみる。なんだか色々出てくる(よくわからない)
			for (Format format : captureDeviceInfo.getFormats()) {
				System.out.println("format" + format.getEncoding());
			}
			System.out.println("--------------------------------");
		}
    }

}

Java [JMF]USBカメラのURLを取得する(動かない)

Vector deviceList = CaptureDeviceManager.getDeviceList(new YUVFormat());
for (Object captureDeviceInfoObj : deviceList) {
	CaptureDeviceInfo captureDeviceInfo = (CaptureDeviceInfo)captureDeviceInfoObj;
	MediaLocator locator = captureDeviceInfo.getLocator();

	System.out.println(captureDeviceInfo.getName());
	System.out.println(locator.getURL());  // ここで落ちる・・・
}
//  java.net.MalformedURLException: unknown protocol: vfw だそうで。
//  java.net.URLがvfw非対応になったのでしょう。というか対応していないプロところるを弾くようにになった?

Processing 画像の左右反転

PImage a;
void setup() {
  size(200, 200);
  a = loadImage("jelly.jpg");//好きな画像を
  noLoop();
}

void draw() {
  scale(-1,1);//画面を反転させる。
  image(a, -width, 0); 

  scale(-1,1);//もとに戻す
  image(a, 100, 100);//分かりやすいように100,100の位置に重ねて描いてみる
}

Java シャネルのロゴ2

int DIAMETER = 70;
int STROKE_WIGHT = 12;
int Y = 100;

size(200, 200);

noFill();
smooth();
strokeWeight(STROKE_WIGHT);
strokeCap(SQUARE);

arc(120, Y, DIAMETER, DIAMETER, radians(30), radians(330));
arc(80, Y, DIAMETER, DIAMETER, radians(210), radians(360+150));

filter(BLUR, 6);

arc(120, Y, DIAMETER, DIAMETER, radians(30), radians(330));
arc(80, Y, DIAMETER, DIAMETER, radians(210), radians(360+150));

Java シャネルのロゴ

int DIAMETER = 70;
int STROKE_WIGHT = 12;
int Y = 100;

size(200,200);

noFill();
smooth();
strokeWeight(STROKE_WIGHT);
strokeCap(SQUARE);
arc(120,Y, DIAMETER, DIAMETER, radians(30),radians(330));
arc(80,Y, DIAMETER, DIAMETER, radians(210),radians(360+150));

Java 画象diff

import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;

import javax.imageio.ImageIO;

public class ImageDiff {

	// 入力ファイル
	public static final String INPUT1 = "data/input1.jpg";
	public static final String INPUT2 = "data/input2.jpg";

	// 出力ファイル
	public static final String OUTPUT = "data/output.jpg";

	// 操作用画象
	private static BufferedImage image1;
	private static BufferedImage image2;
	private static BufferedImage output;

	public static void main(String[] args) {
		loadImage();
		doProcess();
		saveImage();
	}

	/**
	 * 画象処理
	 */
	private static void doProcess() {
		int width = Math.max(image1.getWidth(), image2.getWidth());
		int height = Math.max(image1.getHeight(), image2.getHeight());
		output = new BufferedImage(width, height, BufferedImage.TYPE_3BYTE_BGR);

		for (int x = 0; x < width; x++) {
			for (int y = 0; y < height; y++) {
				int rgb1;
				if ((x <= image1.getWidth()) && (y <=image1.getHeight())) {
					rgb1 = image1.getRGB(x, y);
				} else {
					rgb1 = 0;
				}
				int rgb2;
				if ((x <= image2.getWidth()) && (y <=image2.getHeight())) {
					rgb2 = image2.getRGB(x, y);
				} else {
					rgb2 = 0;
				}
				int diff = rgb1 - rgb2;
				output.setRGB(x, y, diff);
			}
		}
	}

	/**
	 * 画像の読み込み
	 */
	private static void loadImage() {
		try {
			image1 = ImageIO.read(new File(INPUT1));
			image2 = ImageIO.read(new File(INPUT2));
		} catch (Exception e) {
			e.printStackTrace();
			System.exit(1);
		}

	}

	/**
	 * 画像書き込み
	 */
	private static void saveImage() {
		try {
			ImageIO.write(output, "jpg", new File(OUTPUT));
		} catch (IOException e) {
			e.printStackTrace();
			System.exit(1);
		}
	}
}

Java ミラー画像

int w = 200, h = 300;

//PImage flip = createImage(w, h, ARGB); //不要
PGraphics g = createGraphics(w, h, JAVA2D);

void setup(){
frameRate(1000);
size(w<<1, h, P2D);
}

void draw(){
println(frameRate);

// 適当になんか描く
g.beginDraw();
g.colorMode(HSB, w);
for(int i=0; i<w; i++) {
  g.stroke(i, w, w);
  g.line(i, 0, i, h);
}
g.textSize(w>>2);
g.fill(0);
g.text("aiueo", w>>2, h>>1);
g.endDraw();

image(g, 0, 0);

//不要
//// 反転処理
//for(int ly=0; ly<h; ly++) {
//for(int lx=0; lx<w; lx++) {
//  int i = lx + (ly*w);
//  int j= (w-lx-1) + (ly*w); // -1を忘れずに
//  flip.pixels[i] = g.pixels[j];
//}}
image(g, w*2, 0,-w,h);//反転させて貼る。
stroke(0); line(w, 0, w, h);
}

Java パフォーマンス計測用

int w = 200, h = 300;

PImage flip = createImage(w, h, ARGB);
PGraphics g = createGraphics(w, h, JAVA2D);

void setup(){
frameRate(1000);
size(w<<1, h, P2D);
}

void draw(){
println(frameRate);

// 適当になんか描く
g.beginDraw();
g.colorMode(HSB, w);
for(int i=0; i<w; i++) {
  g.stroke(i, w, w);
  g.line(i, 0, i, h);
}
g.textSize(w>>2);
g.fill(0);
g.text("aiueo", w>>2, h>>1);
g.endDraw();

image(g, 0, 0);

// 反転処理
for(int ly=0; ly<h; ly++) {
for(int lx=0; lx<w; lx++) {
  int i = lx + (ly*w);
  int j= (w-lx-1) + (ly*w); // -1を忘れずに
  flip.pixels[i] = g.pixels[j];
}}

image(flip, w, 0);
stroke(0); line(w, 0, w, h);
}
Total Pages: 1 / 212

よく投稿されているコード

タグ

最近投稿されたコード