Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


16021 / 76734 ←次へ | 前へ→

【66187】Re:二次元配列上に傾いた楕円を描画したい
発言    - 10/8/6(金) 19:59 -

引用なし
パスワード
   ▼SS さん:

>「傾いた」が二次元、三次元どちらか分かりませんが
二次元です

>二次元配列上に傾いた楕円を描画の題意がピンときません。
>もう少し出来ている部分の情報があると回答できるかもしれません。

今作ってるやつです 円と線だけでできてます
ht tp://www42.atwiki.jp/syugyou?cmd=upload&act=open&pageid=243&file=nnn.xls

楕円も使いつつ当たり判定を二次元配列上に入れたいのです

円の描画はこうしてます(わかりやすくするためセルに描画してます)
Sub en(a, b, kaisix, kaisiy, ByVal x, ByVal y, Optional owariy = 0)
'a・b中心座標 kaisix・kaisiy描画開始座標 x終了X座標
'y終了Y座標(1か-1のみ 中心より上か下か)
Dim c, d, e, f, g, h, i, j, k
i = Abs(kaisix - a) ^ 2 + Abs(kaisiy - b) ^ 2
d = kaisix - a
e = kaisiy - b

Cells(a + d, b + e).Interior.Color = 0

For h = 0 To 10000

If d > 0 Then
j = -1
Else
j = 1
End If

If e > 0 Then
k = 1
Else
k = -1
End If

f = Abs((d ^ 2) + ((e + j) ^ 2) - i)
g = Abs(((d + k) ^ 2) + (e ^ 2) - i)
n = Abs(((d + k) ^ 2) + ((e + j) ^ 2) - i)

If f > g And n > g Then
d = d + k
ElseIf n > f Then
e = e + j
Else
e = e + j
d = d + k
End If

Cells(a + d, b + e).Interior.Color = 0

If a + d = x Then
If y = -1 Then
If e <= 0 Then Exit For
Else
If e >= 0 Then Exit For
End If
End If

Next

owariy = b + e
End Sub


Sub test()
en 50, 50, 30, 30, 60, -1
End Sub

これと同様に楕円を描画可能でしょうか
できればFor内でサインコサインを使わないで済めば幸いです
円の描画もより高速化できればご教授願います

1 hits

【66158】二次元配列上に傾いた楕円を描画したい 10/8/6(金) 2:36 質問
【66159】Re:二次元配列上に傾いた楕円を描画したい SS 10/8/6(金) 9:25 発言
【66187】Re:二次元配列上に傾いた楕円を描画したい 10/8/6(金) 19:59 発言
【66189】Re:二次元配列上に傾いた楕円を描画したい hogeratta 10/8/6(金) 20:54 発言
【66191】Re:二次元配列上に傾いた楕円を描画したい 10/8/7(土) 4:31 発言
【66208】Re:二次元配列上に傾いた楕円を描画したい 10/8/9(月) 2:45 回答

16021 / 76734 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free