Time 加工线逐渐变大
所以我在一个文件中有坐标和秒数,我想让一条线逐渐变大。在文件中,我有x1,x2(关于第一个点坐标),x2,y2(第二个点坐标),以及我想要开始在第二个点方向上增加线的时间(以秒为单位) 这是我的代码: //读台词Time 加工线逐渐变大,time,processing,lines,Time,Processing,Lines,所以我在一个文件中有坐标和秒数,我想让一条线逐渐变大。在文件中,我有x1,x2(关于第一个点坐标),x2,y2(第二个点坐标),以及我想要开始在第二个点方向上增加线的时间(以秒为单位) 这是我的代码: //读台词 导入处理。视频。*; 电影我的电影; 表格; 浮动持续时间、时间; int row_no=1; int clickcount=0; 无效设置(){ 规模(640480); myMovie=新电影(这个“draft.mov”); myMovie.loop(); table=loadTab
导入处理。视频。*;
电影我的电影;
表格;
浮动持续时间、时间;
int row_no=1;
int clickcount=0;
无效设置(){
规模(640480);
myMovie=新电影(这个“draft.mov”);
myMovie.loop();
table=loadTable(“data/new.csv”);
}
作废提款(){
duration=myMovie.duration();
time=myMovie.time();
图像(myMovie,0,0);
if(time>=table.getFloat(第4行)){
冲程重量(15);
中风(255,14255);
float a=table.getFloat(第0行);
float b=table.getFloat(第1行);
行(table.getFloat(第0行),table.getFloat(第1行),a,b);
a=a+2;
b=b+2;
}
}
//每次有新帧可读取时调用
无效电影事件(电影m){
m、 read();
} `
正如尼科洛建议的那样,先把你的问题分解,拿出你不需要的任何东西,然后一步一步走
根据你对目标的描述,在术语或删除内容方面,听起来代码与播放电影没有任何关系,所以将代码删除以简化。(我能想到的使用电影的唯一原因是使用它的当前时间来控制线条,但是除非你想要电影背景,否则你不应该需要它)
在draw()循环中,有一些事情看起来很奇怪:
如果(time>=table.getFloat(row_no,4)){
假设.csv文件中的第5列以秒为单位保存当前行的提示时间,则此条件可能只触发一次,因为没有任何增量row_no
line(table.getFloat(row_no,0),table.getFloat(row_no,1),a,b);
可能不是您想要的,并且可能是一个打字错误,因为a
和b
是从相同的.csv列(0和1)检索的,这意味着您的行的开始和结束位置都在正确的位置(因此不渲染行)。也许您的意思是行(table.getFloat(第2行),table.getFloat(第3行),a,b);
a=a+2;
和b=b+2;
:其中一个点的x、y位置可能会偏移2,但新位置永远不会超过该点。在下一次draw()
迭代中,会重新定义a
和b
,因此偏移会丢失void draw(){
background(255);
//map time to an interpolation normalized value
float t = map(mouseX,0,width,0.0,1.0);
//interpolate the values
float size = lerp(10,90,constrain(t,0.0,1.0));
ellipse(50,50,size,size);
}
下面是您可以运行的p5.js演示片段:
函数设置(){
createCanvas(100100);
}
函数绘图(){
背景(255);
//将时间映射到插值标准化值
var t=映射(mouseX,0,宽度,0.0,1.0);
//插值
变量大小=lerp(10,90,约束(t,0.0,1.0));
椭圆(50,50,大小,大小);
}
堆栈溢出实际上不是为一般的“我该怎么做”类型的问题而设计的。它是为了更具体的“我尝试了X,预期是Y,但得到了Z”键入问题。您需要。您要问的问题不清楚,因此请尝试编辑该问题,以便:询问您想做什么,显示您以前如何尝试做但未成功,并显示失败尝试的结果。您能否将问题缩小到一个范围,而不是整个项目?您的问题没有任何限制与电影有关的事情,是吗?因此,只需从一个更基本的草图开始,该草图只显示线条的增长。我们也无法访问该文件,因此请使用硬编码的数字。