سؤال

1) وأنا أعلم أن نقطة بداية السهم وأنا أعلم أن نقطة النهاية.

وليس لدي أي فكرة عن كيفية رسم رأس السهم .. أفترض أن اثنين من غيرها من النقاط الرأس هي 45 درجة زوايا بعيدا عن نقطة النهاية ...

أحد يعرف من الصيغ اللازمة للقيام بذلك؟

هل كانت مفيدة؟

المحلول

وواد يعطي إجابة جيدة للجزء برنامج OpenGL في هذه المسألة. سأحاول الإجابة على جزء ناقل الرياضيات. وإليك بعض شبة الكود من على قمة رأسي:

Triangle GenerateArrowHead(vec2 p1, vec2 p2)
{
    // Compute the vector along the arrow direction
    vec2 v = Normalize(p2 - p1)

    // Compute two perpendicular vectors to v
    vec2 vPerp1 = vec2(-v.y, v.x)
    vec2 vPerp2 = vec2(v.y, -v.x)

    // Compute two half-way vectors
    vec2 v1 = Normalize(v + vPerp1)
    vec2 v2 = Normalize(v + vPerp2)

    Triangle tri;
    tri.a = p2;
    tri.b = p2 + ArrowHeadSize * v1;
    tri.c = p2 + ArrowHeadSize * v2;
    return tri;
}

نصائح أخرى

لماذا هذا لن يجدي نفعا؟

1) رسم مثلث للرئيس (يعني التعادل مع GL_TRIANGLES، وليس رسم قطاعات 3 الخط الذي شكل مثلث)

2) رسم قطعة مستقيمة تمتد من منتصف قاعدة المثلث.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top