これは、ポイントを変換するための私のユーティリティ関数です:
void translatePoints(float x, float y, int transX, int transY)
{
glMatrixMode(GL_MODELVIEW);
//glLoadIdentity();
glBegin(GL_LINES);
// original points
glVertex2f(x,y);
glVertex2f(x + transX, y + transY);
glEnd();
glFlush();
}
円を描画し、ポイントをスケーリングし、ポイントを回転させるための同様の関数があります。行列の変換を使用せずに、myDisplay から x 値と y 値を渡して、形状を変換し、中心からスケーリングおよび回転させる必要があります。星のような 6 つの点を持つ形状の場合、この関数は機能しません。この関数が機能するには、2 つのポイントを返す必要があるか、ポインターを使用できると思います。しかし、これらのいずれかを実装する方法がわかりません。また、この関数でこれらのポイントを描画するべきではないと考えています。最後に、さまざまな形のシーンを描かなければなりません。