I'm trying to find if any point on a bezier curve has a slope that is lesser than some predetermined angle, let's say $45^\text{o}$.
For certain cases I can see that the answer is obvious. Like consider this particular case in the image:
The minimum slope can either occur on p1 or p4. and would be the same as as the slope of [$\overrightarrow{p2} - \overrightarrow{p1}$] or [$\overrightarrow{p4} - \overrightarrow{p3}$] respectively. So if neither of them lies in the range $[-45,45]$ we can securely say that no point on the curve has a slope that lies in $[-45,45]$ range and that's what I want.
My mathematics is a bit rusty, I cannot come up with a mathematical definition of where this case would hold but I can see visually that it does.
But about some other cases, eg: this one:
Is there an intuitive way to do the same with case 2? Say you know minimum slope is [$\overrightarrow{p3} - \overrightarrow{p1}$] or something intuitive like that without having to differentiate the actual equation of the curve.
In my case it is guaranteed that the length between points p1 and p2, and p3 and p4 would never be greater than half of the distance between p1 and p4.
$dist(p1,p2) <= dist(p1,p4)/2$
$dist(p4,p3) <= dist(p1,p4)/2$



Cubic Bézier curve with start point $\vec{P}_0$, end point $\vec{P}_3$, and control points $\vec{P}_1$ and $\vec{P}_2$ can be expressed as a vector-valued function $$\vec{p}(t) = (1-t)^3 \vec{P}_0 + 3 (1-t)^2 t \vec{P}_1 + 3 (1-t) t^2 \vec{P}_2 + t^3 \vec{P}_3\tag{1}\label{1}$$ where $0 \le t \le 1$, noting that $\vec{p}(0) = \vec{P}_0$ and $\vec{p}(1) = \vec{P}_3$.
Its derivative with respect to $t$ is its tangent, $$\frac{d \vec{p}(t)}{dt} = \vec{\tau}(t) = 3 (1-t)^2 (\vec{P}_1 - \vec{P}_0) + 6 (1-t) t (\vec{P}_2 - \vec{P}_1) + 3 t^2 (\vec{P}_3 - \vec{P}_2)\tag{2}\label{2}$$ In 2D coordinates, $\eqref{2}$ can be written as $$\left\lbrace ~ \begin{aligned} \tau_x(t) &= 3 (1-t)^2 (X_1 - X_0) + 6 (1-t) t (X_2 - X_1) + 3 t^2 (X_3 - X_2) \\ \tau_y(t) &= 3 (1-t)^2 (Y_1 - Y_0) + 6 (1-t) t (Y_2 - Y_1) + 3 t^2 (Y_3 - Y_2) \\ \end{aligned} \right . \tag{3}\label{3}$$
If you want to solve for $t$ when the slope is $Y/X$, i.e. $$\frac{\tau_y(t)}{\tau_x(t)} = \frac{Y}{X}$$ then write it as $$X \tau_y(t) - Y \tau_x(t) = 0 \tag{4}\label{4}$$ and substitute $\eqref{3}$ into $\eqref{4}$. This is a quadratic (second degree) function in $t$, and will have up to two real solutions $t$. Those that are within $0 \le t \le 1$, are the points where the slope of the curve is as desired. Note that in this form, vertical lines are $Y = \pm 1$, $X = 0$. However, the direction is ambiguous: tangents towards $(+1, +1)$ have the same "slope" as tangents towards $(-1, -1)$, so you may need to check the direction of the curve at each $t$, by substituting the found $t$ into $\eqref{2}$ or $\eqref{3}$.