0

私は、ユーザーが楕円または線のいずれかを描くことができる描画プログラムを持っています。どちらも形状から派生しています。私は1つの輪ゴムを作成しています、そしてユーザーが描いているものに応じて私は言います

rubberBand = new Ellipse();
//or
rubberBand = new Line();

しかし、ラバーバンドをラインに設定すると、x1 x2などにアクセスできず、形状にX1の定義が含まれていないと表示されます。楕円を作成して線にキャストしようとしましたが、それでも同じ問題が発生します。これを解決するにはどうすればよいですか?

4

2 に答える 2

0

これは、基本的なポリモーフィズムの質問のように思えます。実際に何をしようとしているのか考えてみてください。たとえば、線には 2 つの点 (X1/Y1 と X2/Y2) があります。楕円 (楕円形の円) にはそのようなプロパティはありません。幅、場合によっては高さ、および場合によっては X 座標と Y 座標 (または位置プロパティ) があります。

ユーザーがマウスでドラッグしているときに、形状の境界や位置を調整しようとしていると推測しています。この場合、形状に対して定義する必要がある操作は、形状の種類によって異なります。線の場合、X2 と Y2 (または何でも) を調整するメソッドを記述する必要があります。楕円の場合、おそらく、幅、高さ、左、および上部のプロパティを持つ形状を調整する別のメソッドが必要になります。次に、処理している形状の種類に応じて、どれを呼び出すかを決定する必要があります。

于 2011-08-29T04:58:06.460 に答える