This paper proposes an optimization-based approach to solve the collision-free trajectory planning problem for unmanned aerial vehicles (UAVs) with nonlinear dynamical systems. The problem is modeled as a non-convex optimization problem, and then iteratively solved by sequential convex programming algorithm which approximates non-convex constraints by convexification methods. We linearize the dynamical equations of the UAV and penalize collision-free constraints with a hinge loss. Furthermore, a variable trust region method is employed to ensure the convergence and stability of the algorithm. We apply the algorithm to three-degree-of-freedom UAV case studies. Numerical results validate that our method can provide collision-free trajectories with a 27.19% reduction in total flight time and a 93.61% reduction in computation time on average compared with the genetic algorithm method.