Неправильно ли RectF.centerpoint?

Я ничего не понимаю. Если у меня есть TRectFширина 4 пикселя:

aRectF := TRectF.Create(TPointF.Create(0,0),4,1);

X = 0 1 2 3 4
    * * * * 

Почему aRectF.centerpoint.xвозвращается 2 вместо 1,5? это ошибка ?

С TRectF5 пикселями:

X = 0 1 2 3 4 5
    * * * * *

aRectF.centerpoint.x return 2.5, но это должно быть 2!

Я что-то упускаю?

delphi,

-3

Ответов: 1


4

В первом примере координаты X охватывают от 0,0 до 4,0 включительно. Половинная точка - 2.0.

Для второго примера они охватывают от 0,0 до 5,0. Таким образом, точка полупериода 2.5.

Ваша ошибка заключается в вашей вере в то, что правый край является одним пикселем слева от того, что я описал.

Дельфы,