7
$\begingroup$

I use blender to create short mathematical animations. For analytical geometry I need images of vectors of variable length.

Often I use a cylinder with a joined cone on top. Now, when I scale the local x-axis, both joined objects are scaled. I'd like the "arrowhead" not to change the dimension while scaling.

What can I do?

$\endgroup$
3
  • $\begingroup$ Just go to Edit Mode, select bottom vertices of the arrow and move them with chosen axis. If you want to, you can make Shape Keys to animate it. $\endgroup$
    – cgslav
    Commented Aug 14, 2017 at 14:29
  • 1
    $\begingroup$ Welcome to Blender.SE! You are right, as long they belong to the same object, the two pieces will inherit the same transformation. There are many ways to approach this task. I would suggest to write down more information about the workflow you intend to follow in your animations so we can suggest something that fits good to the needs. $\endgroup$
    – Carlo
    Commented Aug 14, 2017 at 14:30
  • $\begingroup$ Related question: blender.stackexchange.com/questions/38420/arrow-animation/… $\endgroup$
    – user1853
    Commented Aug 15, 2017 at 4:20

3 Answers 3

4
$\begingroup$

One option is to use an armature. Put the tail of the arrow in the vertex group of the root bone, and then put the head of the arrow in the vertex group of the second bone.

To achieve the same magical behavior as Carlo's answer the armature needs a few bone constraints (which you can add while in pose mode, and they are different than object constraints).

The following 2-bone construction almost works, but suffers from a cyclic dependency: The root bone needs a Track To constraint targeted at the head bone. The default To=Y is good. The head bone then needs a Copy Rotation constraint targeted at the root bone.

To resolve the cyclic dependency we need a third bone I'll call "target".

Base bone needs a Track To constraint targeted at target (how creative!)

Head bone needs a Copy Rotation constraint targeted at the base bone. It also needs a Copy Location constraint targeted at the target bone.

This eliminates the cyclic dependency.

3 bone rig

$\endgroup$
1
  • $\begingroup$ It was the first question I asked on Blender Stack Exchange. I was impressed by the answers – so quick and so precise. I need a bit of time to try it out, as I am a blender newbie Thank you very much for your help. Tom $\endgroup$
    – Tom
    Commented Aug 14, 2017 at 18:27
6
$\begingroup$

DisJoin & use Limit Scale Constraint

A quick solution could be to disjoin the object in two pieces and assing scaling constraints to the arrow's head. Then parent the head to the body in order to acquire the transformation info we need to keep the object consistent (location & rotation).

In the image below you can see the constrain applied to the head. The origin of the arrow's body has been set to the tail (it seemed handy to me to have it there, but you can change)

enter image description here

As the head object has been parented while there was an offset between itsel and the body's origin, while scaling the body, a scaling of the head still occour, but because of the constraint, only the location of the object is being scaled (and so the head stays in place)

enter image description here

$\endgroup$
1
  • 1
    $\begingroup$ It was the first question I asked on Blender Stack Exchange. I was impressed by the answers – so quick and so precise. I need a bit of time to try it out, as I am a blender newbie Thank you very much for your help. Tom $\endgroup$
    – Tom
    Commented Aug 14, 2017 at 18:27
2
$\begingroup$

By using shape keys:

  1. Join your cylinder and the arrow head.

  2. Create 2 shape keys.

  3. Select the key1 and tab in edit mode.
  4. Scale the cap face by 1 or 2 units.
  5. Then you can adjust the length of the arrow by changing the value of the shape key.
  6. You can scale even more the cylinder by changing the max range of the shape key.

Scale the cylinder while editing the key1 Adjust the length of the arrow by changing the value of the key1

$\endgroup$

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .