この説明との類推により、非標準依存関係なしに言語Cで関数を書きます。
matrixfromnormal <point3>
局所軸z（つまり通常）のベクトルが特定のベクトル<point3>と一致するマトリックスを返します。マトリックスの移動の成分は[0.0.0]です。スケールのコンポーネントの値は、ベクトル<point3>を正規化するために必要な値によって逆です。
関数関数の例（意味）：
MatrixFromNormal（[0.0.1]）が戻ります（Matrix3 [1,0,0]、[0.1,0]、[0.0.1]、[0.0,0,0]））
MatrixFromNormal（[0.1.1]）が戻ります（Matrix3 [0、-0.707107.0.707107] [1.41421.0.0.0.0] [0,1,0,0,0,0]）
Напиши функцию на языке C без нестандартных зависимостей по аналогии с этим описанием:
matrixFromNormal <point3>
Возвращает матрицу, у которой вектор локальной оси Z (т.е. нормаль) будет совпадать с заданным вектором <point3>. Компонент перемещения матрицы равен [0,0,0]. Величины компонента масштаба обратны значениям, требуемым для нормализации вектора <point3>.
Примеры работы функции (по смыслу):
MatrixFromNormal([0,0,1]) вернёт (matrix3 [1,0,0], [0,1,0], [0,0,1], [0,0,0])
MatrixFromNormal([0,1,1]) вернёт (matrix3 [0,-0.707107,0.707107] [1.41421,0,0] [0,1,1] [0,0,0])