パーソナルブログメモリ

a = [1, 1]
for _ in "*" * 999: a += [sum(a[-2:])]
print(a)

Raspberry Pi 3でProcessing3.3 linux64bit版を動かす。

2017-03-29 | Raspberry Pi 2 or 3 or Pico
今年はPi 4を期待していたけど、記事で3年ぐらいひっぱるとあったので買うことにしました。
秋月の価格で日本製は5600円、element14製は4800円、少し悩んで安い方を購入。

今回はマインクラフトをpythonから使ってみようかなと思ったのでosはraspbianを選択。

raspbianもpixelという新バージョンをダウンロードしてSDに書き込んでみます。

日本語入力できるようにして再起動。

電源は自宅にあった2Aのものを利用しています。今のところ4時間ぐらい問題ないです。

動画サイトも前よりは速い感じ。全画面表示は無理っぽいけど、普通サイズなら視聴にもこまらないレベル。
ブラウザでのページ読み込みは少し遅かったりしますがさすがにこれはしょうがない。

最近遊んでいるprocessingを入れて例の日本をまわしてみる。普通にubuntuの64ビット版が動きました。
PS3のコントローラーもつなげてみるがエラーがでてメッセージにARMがなんたらかんたらとでてきたのでそこは諦めました。

速度はAMD-7860Kの10分の1ほどです。


<参考サイト>
地球地図日本
画像に関しての著作権 Copyright. Geospatial Information Authority of Japan. ALL RIGHTS RESERVED.

<開発環境>
Raspberry Pi3
RASPBIAN JESSIE WITH PIXEL
Processing 3.3 linux 64bit

<操作方法>
ws前進後退
ad左右回転です

<画像ファイル>
ソースリストと同じフォルダに配置
japan.png


hi.png


<ソースリスト>
japanpi3.pde
PImage img;
PImage himg;

int wx=1260;
int wy=936;
int ws=1260*936;

int[] cp = new int[40];
int[] cr = new int[40];
int[] cg = new int[40];
int[] cb = new int[40];

int cn;
int hi[] = {-20,-20,-20,-20,-20,-20,-20,-20,-20,-10,0,20,40,60,80,100,125,150,175,200,225,250,275,300,350,400,450,500,600,700,800,900,1000,1500,2000,3000,4000,5000,6000,7000};
int[] hland = new int[ws];

float ty;
float t=2;

float px=600;
float py=450;
int pt;//muki
int ph=2000;//height

int sc=1000;

void theWorld2(){
  int tm=millis();
  int el=1400;
  int eh=60000;
  float ez;
  float ex;
  int ep;
  int hwix=700;
  int hwiy=200;
  int mx;
  int my;
  float cot=cos(t);
  float sit=sin(t);
  for (int y=3;y<500;y=y+4){
    ez=el*eh/y;
    for (int x=0;x<1400;x=x+3){
      ex=(x-hwix)*ez/el;
      float tx=(ex*cot-ez*sit)/sc;
      float ty=(ex*sit+ez*cot)/sc;
      mx=(int)(px+tx);
      if (mx<0 || mx>wx) continue;
      my=(int)(py-ty);
      ep=mx+my*wx;
      if (ep<0 || ep>=ws) continue;
      int h=(int)(hland[ep]*6/(sqrt(tx*tx+ty*ty)));
      fill(img.pixels[ep]);
      rect(x,y+hwiy-h,3,h+4);
    }
  }
  fill(255,255,255);
  text(millis()-tm,10,10);
}

void setup() {
 
  size(1400, 700);
  img = loadImage("japan.png");
  himg = loadImage("hi.png");
  noStroke();
  cn=0;
  
  for (int i=20;i<420;i=i+10){
    int c=himg.pixels [i+40*421];
    int r=(int)red(c); 
    int g=(int)green(c);
    int b=(int)blue(c);
    c=color(r,g,b);
    int sw=0;
    for (int j=0;j<cn;j=j+1){
      if (c==cp[j]){
        sw=1;
        break;
      }  
    }  
    if (sw==0){
      cp[cn]=c;
      cr[cn]=r;
      cg[cn]=g;
      cb[cn]=b;
      cn=cn+1;
    }  
  }
  cn=cn-1;

  for (int i=0;i<ws-1;i=i+1){
    int c=img.pixels [i];
    int r=(int)red(c);
    int g=(int)green(c);
    int b=(int)blue(c);
    int bs=10000;
    int bh=0;
    for (int j=0;j<cn;j=j+1){
      int s=abs(r-cr[j])+abs(g-cg[j])+abs(b-cb[j]);
      if (s<bs){
        bs=s;
        hland[i]=hi[j]+160;
      }
    }  
  }
}
 
void draw() {
  background(0);
  
  float lx=0.0;
  float ly=0.0;
  float rx=0.0;
  float ry=0.0;
  
  if ((keyPressed == true) && ((key == 'a') ||  (key == 'A'))) {
    lx= -0.3;
  }
  if ((keyPressed == true) && ((key == 'd') ||  (key == 'D'))) {
    lx= 0.3;
  }
  if ((keyPressed == true) && ((key == 'w') ||  (key == 'W'))) {
    ry= -1;
  }
  if ((keyPressed == true) && ((key == 's') ||  (key == 'S'))) {
    ry= 1;
  }

  t=t-lx;
  float dx=cos(t-1.57);
  float dy=-sin(t-1.57);
  
  float sp=20;
 
  px=px+dx*ry*sp;
  py=py+dy*ry*sp;
  
  theWorld2();
}



少しもたつきましたが、この記事はPi3で書きました。いまのところ日本語入力が一番怖いです。

最新の画像もっと見る

コメントを投稿

ブログ作成者から承認されるまでコメントは反映されません。