【新人,紧急求助!】一个简易diagram
processing吧
全部回复
仅看楼主
level 2
cjfeng1021 楼主
小弟在编写一个简易的diagram,但我是初次接触processing,有望大神们帮助帮助,万分感谢。如果可能,有望大神能提供编写好的最终效果代码供小弟参考参考,感激不尽。
大致如上图,关键现在不懂如何添加动态。(上图是我自己画的,当大神在编写代码时不必按照上图这几个图形排列,可随性摆放)
动态要求如下:
1. 圆点可以用鼠标单击移动,但只限于水平横向移动,不可以被纵向移动。
2. 每当圆点被移动的同时,上面4个矩形同时产生横向移动且移动方向与圆点的移动方向相反。
3. 但是矩形移动具有一定的规律,规律是:距离圆点最近的那个矩形横向移动距离较大较明显(不要太大了,别超出画框),以此类推第二近的移动距离小一点,第三近的再小一点,最远那个矩形移动的幅度最小最不明显。
4. 矩形移动的同时产生残影,残影效果如下图。(最后附上残影效果代码作参考)
(代码如下:这个我真不懂。来源:https://processing.org/examples/storinginput.html
int num = 60;
float mx[] = new float[num];
float my[] = new float[num];
void setup() {
size(640, 360);
noStroke();
fill(255, 153);
}
void draw() {
background(51);
// Cycle through the array, using a different entry on each frame.
// Using modulo (%) like this is faster than moving all the values over.
int which = frameCount % num;
mx[which] = mouseX;
my[which] = mouseY;
for (int i = 0; i < num; i++) {
// which+1 is the smallest (the oldest in the array)
int index = (which+1 + i) % num;
ellipse(mx[index], my[index], i, i);
}
}
2015年02月26日 02点02分 1
level 2
cjfeng1021 楼主
在线等着。。。。[委屈]
2015年02月26日 02点02分 2
帖子被度娘删了……
2015年02月28日 10点02分
只能这么发了,楼主感受下吧,么有加残影
2015年02月28日 10点02分
为什么我发代码的内容都被删了!!!
2015年02月28日 10点02分
level 2
cjfeng1021 楼主
默默祈祷默默等待。。
2015年02月26日 04点02分 3
level 2
cjfeng1021 楼主
第三点内容描述有误。
不是移动幅度,应该是
“3. 但是矩形移动具有一定的规律,规律是:距离圆点最近的那个矩形横向移动所产生的残影密度最大(可理解为数量最多),以此类推第二近的残影密度较低(即数量较少),第三近的再少一点,最远那个矩形的残影最稀疏,密度最低。”
其实这一点我不太确定能不能实现。
2015年02月26日 04点02分 4
level 9
度娘居然把我的回复吞了,shenmegui!!!
楼主大致感受下吧,没有加残影
float a =300;
float b;
void setup(){
size(600,400);
}
void draw(){
rectMode(CENTER);
}
void mouseDragged(){
background(0);
b+=mouseX-pmouseX;
ellipse(a+b,200,10,10);
rect(a-(b*0.5),150,100,10);
rect(a-(b*0.1),100,80,20);
}
2015年02月28日 10点02分 7
感谢提供参考!
2015年03月03日 18点03分
1