请问作个画‘五角星’的 CLASS 怎么做?(100分)

  • 主题发起人 主题发起人 flyinsky
  • 开始时间 开始时间
F

flyinsky

Unregistered / Unconfirmed
GUEST, unregistred user!
我要画一个五角星饶着一个圆中心运动,所以我想将五角星作成
一个 class ,主要属性设置为:
中心点(x,y 坐标),半径,以及角度(指它放的偏转姿态),
以及它的 DRAW方法。
我不知道该怎么做成类,因为在主程序中一个FORM,PAINTBOX上画的,(用canvas 的方法),那么在CLASS中用什么方法实现呢?
 
真有不怕累的,用动画软件3dmax之类的作一个,放在form上不行吗?
 
这个画法程序并不烦,我所关心的是关与如何将他 建立成class.
 
type
TStar = class(TObject)
x,y,r,a: single;
constructor Create(...);
procedure Draw(Canvas: TCanvas);
...
end;

Star1.Draw(Form1.PaintBox1.Canvas);
 
我认为可以这样定义:
type
TPentagonal = class
private
FPoints: array [0..9] of TPoint;
// 存放拐点
FCenter: TPoint;
FRadii: Extended;
FAngle: Extended;
procedure CalcPoints;
procedure SetCenter(Value: TPoint);
procedure SetRadii(Value: Extended);
procedure SetAngle(Value: Extended);
...
public
constructor Create;
//virtual;
destructor Destroy;
override;
procedure DrawStar(ACanvas: TCanvas);
....
property Center: TPoint read FCenter write SetCenter;
property Radii: Extended read FRadii write SetRadii;
property Angle: Extended read FAngle write SetAngle;
end;
 
OK,我知道了关键问题,
procedure Draw(Canvas: TCanvas);
我原来就是不知道如何解决在其他地方调用DRAW的方法,
现在很好解决了,
谢谢孙老师,还有CROCO。
 
多人接受答案了。
 
后退
顶部