When I animate the TCircle position, the animation is smooth and appears to occur in sub-pixel increments / decrements. However, when I animate the width (or / and height) of TCircle, the animation progresses in increments of pixels, making it much smoother.
This is especially striking when performing slow animations, when the positions (X and Y), Width and Height are simultaneously animated, creating a zooming effect. The left and upper parts of the circle smoothly change outward, and the right and lower parts are abrupt.
I canβt understand why this is happening. All suggestions are greatly appreciated.
(btw, this does not happen when Scale.X and Scale.Y are animated. Smooth, but I do not want the stroke thickness to scale, therefore, using width and height)
(using XE2)
TForm code for demo:
object Form6: TForm6
Left = 0
Top = 0
Caption = 'Form6'
ClientHeight = 821
ClientWidth = 1108
Visible = False
StyleLookup = 'backgroundstyle'
object cirPulse: TCircle
Position.Point = '(352,192)'
Width = 200.000000000000000000
Height = 200.000000000000000000
Fill.Kind = bkNone
StrokeThickness = 10.000000000000000000
object FloatAnimation1: TFloatAnimation
Enabled = True
Duration = 50.000000000000000000
StartFromCurrent = True
StopValue = 400.000000000000000000
PropertyName = 'Width'
end
object FloatAnimation2: TFloatAnimation
Enabled = True
Duration = 50.000000000000000000
StartFromCurrent = True
StopValue = 400.000000000000000000
PropertyName = 'Height'
end
object FloatAnimation3: TFloatAnimation
Enabled = True
Duration = 50.000000000000000000
StartFromCurrent = True
StopValue = 252.000000000000000000
PropertyName = 'Position.X'
end
object FloatAnimation4: TFloatAnimation
Enabled = True
Duration = 50.000000000000000000
StartFromCurrent = True
StopValue = 92.000000000000000000
PropertyName = 'Position.Y'
end
end
end
Domus source
share