Forum

How to get the index or the angle out of the elements in a CircularSpread


#1

Hello everybody, I am currently learning vvvv and I am wondering how could I position differently each element that comes out of a CircularSpread depending on the index (or the angle). What I want to do, is to have the points that move back and forth on the z-axis based, each point with a bit of offset respect to its neighbour. At the moment I can only move them back and forth all together, as in the patch attached.

spread01.v4p (14.3 KB)


#2

Ok, the getSlice example that comes with F1, shows me how to get the indexes.


#3

So, I am still facing this problem. At the moment I am created a cricularSpread containing 20 points that have x and y values. I am using getSlice and a waveShaper to get each value out of them. The problem is that getSlice is not returning a point with x and y coordinates, as expected, but simply a float.


#4

spread02-setSlice.v4p (16.3 KB)

I am still having problem with the same issue as before. Basically I want to use a circular spread and to get make a 3D vector out of the point collected, x and y coming from the circular spread and a z value that change depending on the index. I think I have to use setSlide, and I had a look at this Bug: SetSlice(Transform) only works with consecutive indexes
but still I do not know how to proceeed.


#5

hei davide, good to see you here!

indeed. the “problem” here is that vvvv does not have vector types. there are only floats and spreads of float. and a spread of 3 floats can be interpreted as a vector3. this has advantages and disadvantages. (just for reference: vl has dedicated vector types!). the way we deal with it is using “bins”, see https://vvvv.org/documentation/spread-definitions#bins-and-bin-sizes

note how the GetSlice has a “Bin Size” input, which you’d set to 3 if you want a vector3 out or 2, if you want a vector2 out.

anyway, for what you want to achieve you need neither get nor setslice. you can simply combine two spreads: while you already have a spread for x and y, the z value is still only a single value. so you create also a spread for the z values and then combine them. the simplest way i could imagine, use another CircularSpread for z, see attached.spread02.v4p (15.4 KB)

note how in the patch it is fine to have the xy spread of count 20 and the z spread of count 40 (or any other count really) and they still combine in a meaningful way…


#6

Thanks :) Until now everything almost ok in the vvvv world.

I see. When I have found the node Vector I have thought it would have been something like Point.

Ah. I think I should start from VL then, maybe it is more close to what I am used to. What do you suggest? Is the girlpower folder and the serie of tutorials VL for vvvv users - Key differences - 1/5 the 2 suggested resources or there is something more? Do you think it makes more sense starting from there? I went through the first part of the tutorial (gui, shortcuts, basic of patching, subpatches, docking etc…), and now I was facing “Spread”, but I hope is not going to be obsolete in VL. In Riot Taebjan suggested me to explore the parasitic design patches, I just skimmed through them at the moment.

The thing that I do not understand in your example is, how many points do I have?
The first circular spread has Spreac Count 20, the second one spread count 40. If I set the second spread count to 4, I still have 20 circle as output, but If I set it to 140 I have way more points. Where is the total value of the points coming from?


#7

please refer to this documentation for an explanation:

specifically: “The output slice count is defined as the maximum of its input’s slicecounts.” which explains that the Vector nodes output is 120 values for xyzxyzxyz…resulting in 120/3=40 points that are being drawn.

i’m afraid i find it hard to answer that atm since we don’t have learning material dedicated for people who’ve not used vvvv before, yet. so far we’ve concentrated explaining vl to vvvv users (hence the title of the video tutorials). once we have vvvv gamma it makes sense to also target people like you.

there is the draft gray book which is vl only, but is more general explanation and reference, no tutorials.

as pointed out in these videos Spreads are the same in vl. only “automatic spreading” is not yet available but is instead handled with much more flexible loop regions.

in any case please keep asking specific questions, we’re here to help you out.