2016-08-31 9 views
-1

После долгих размышлений и блуждания по неизвестности я обращаюсь к вам: Как нарисовать дугу или полукруг в OpenGL или GLUT, давая:OpenGl/Glut: Draw arc/semi cycle, дающий первую, вторую, третью точки и сегменты

  • p1 = (x1, y1) первая точка
  • р2 = (х2, у2) вторая точка полукруглой дуги,
  • р3 = (х3, у3) будет предыдущий пункт предшествующий первой точке.

EDIT

Mathematic решить проблему является HERE.

ответ

1

В некоторых составителей (что я useed) ваш источник строки:

float t = (PI * i)/2;

приведет к целому. Возможно, это проблема ваших визуализированных линий.

Попробуйте заставить компилятор использовать поплавки:

float t = (PI * (float)i)/2.0f;

... просто чтобы быть уверенным, что ваш «т» будет иметь десятичное место.

3

В вашем цикле for вы увеличиваете свою переменную цикла i на 1 с каждой итерацией. Однако ваш расчет параметра кривой t не учитывает количество шагов. Я вроде бы неохотно даю вам полное решение, но вот подсказка: вы должны делить на segments где-то. Также segments вероятно, представляет собой целое число, тоже, так что вам придется бросить в float или double

Теперь, прежде чем начать распыляя свой код с …/(float)segmentsдумают!

Я хочу вам понять что вы там делаете.

 Смежные вопросы

  • Нет связанных вопросов^_^