I trying to make something like this (callout title. like in image) with animation nodes. And i need to draw line with thickness and animate it. If i use curve with Bevel Object (second curve) it give ugly result near twist (image1). I know how to draw curve or line mesh using animation nodes but they havent thickness. Does anyone know how to add thickness?
1 Answer
Let the thickness be $T$, the length of the base be $L$, the length of the other side be $W$, and the angle between the base and the other side is $\theta$. Then you should create a mesh composed of 6 vertices with the following vertices locations:
$(0,0)$, $(0,T)$, and $(L,0)$ are trivial. For the point $(L-T\cot{(\theta/2)}, T)$, the y location is trivial, the x location is computed by noting that $T\cot{(\theta/2)} = T\frac{\text{base}}{T} = \text{base}$, where $\text{base}$ is the base of the triangle composed from $(L,0)$, the point, and its projection on the x axis. For the point $(L+W\cos{(\theta)}, W\sin{(\theta)})$, $W\cos{(\pi - \theta)} = W\frac{\text{base}}{W} = \text{base}$ where $\text{base}$ is the base of the triangle composed of $(L,0)$, the point, and the projection of the point on the x axis. And $W\sin{(\pi - \theta)} = W\frac{\text{height}}{W} = \text{height}$ where $\text{height}$ is the height of the triangle composed of $(L,0)$, the point, and the projection of the point on the x axis. Finally, for $(L+\cos{(\pi-\theta)}(W-T), \sin{(\pi-\theta)}(W+T)))$, we add a vector to the aforementioned point, this vector is computed from the triangle composed from $(L-T\cot{(\theta/2)}, T)$, its projection on the the side whose length is $W$, and the intersection point between the projection lines of the point on the x axis and the side length whose length is $W$. Which conclude the derivation of the point locations.