2020年6月20日 星期六

程式設計Week17

可拉動線

程式碼:
void setup( )
{
   size(300,300);
}
float x=100,y=150;

void draw( )
{
   background(#002966);  //背景
   stroke(#b7efff);    //線顏色
   line(x,y,200,150);

   fill(#b7efff);    //點上色
   ellipse(x,y,13,13);
   ellipse(200,150,13,13);
   if(!mousePressed)
   {
       float dx=x-200;
       float dy=y-150;
       float len=sqrt(dx*dx+dy*dy);
       x-=dx*(len-100)/len*0.1;   //每次拉回只走0.1
       y-=dy*(len-100)/len*0.1;
    }
}

void mouseDragged( )     //函式拉收
{
    x=mouseX;
    y=mouseY;
}

貓追老鼠

程式碼:
void setup( )
{
  size(400,300);
}

float x=100,y=150;

void draw( )
{
  background(#002966);
  ellipse(x,y,50,50);

  float dx=x-mouseX;
  float dy=y-mouseY;
  float len=sqrt(dx*dx+dy*dy);
  x-=dx*(len-100)/len*0.1;     //保持距離
  y-=dy*(len-100)/len*0.1;
}

牛頓定律改變長度

程式碼:
void setup( )
{
   size(300,300);
}

float x=100,y=150,vx=0,vy=0;

void draw( )
{
   background(#002966);
   stroke(#b7efff);
   line(x,y,200,150);

   fill(#b7efff);
   ellipse(x,y,13,13);
   ellipse(200,150,13,13);
   if(!mousePressed)
   {
       float dx=x-200;
       float dy=y-150;
       float len=sqrt(dx*dx+dy*dy);
       float f=(len-100);    //力量
       dx/=len;
       dy/=len;
       vx-=f*dx*0.01;       //不同彈性係數,彈力越強動越快
       vy-=f*dy*0.01;
       x+=vx;
       y+=vy;
    }
}

void mouseDragged( )
{
    x=mouseX;
    y=mouseY;
}

讀檔

程式碼:
#include <stdio.h>
char line[1000];
int main( )
{
    FILE * fin=fopen("my_first_file.txt","r");   //檔名
    fscanf(fin,"%s",line);
    printf("=%s=",line);
}

沒有留言:

張貼留言