可拉動線
程式碼:
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);
}
沒有留言:
張貼留言