1 名前:デフォルトの名無しさん [04/07/03 08:49] VB.NETの質問全般です 過去スレ VB.NET質問スレ (Part5) pc5.2ch.net/test/read.cgi/tech/1078134703/ VB.NET質問スレ (Part4) pc2.2ch.net/test/read.cgi/tech/1065269043/ 【老若】VB.net質問スレ【男女】 (Part3) pc2.2ch.net/test/read.cgi/tech/1056281084/ 【老若】VB.net質問スレ【男女】 (Part2) pc2.2ch.net/tech/kako/1043/10436/1043629429.html 【老若】VB.net質問スレ【男女】 pc2.2ch.net/tech/kako/1025/10258/1025848458.html
258 名前:デフォルトの名無しさん [04/07/26 12:54] 質問です。 メモ帳を作成したのですが、 テキストファイルからプログラムを実行した際に、 テキストファイルを読み込む処理の仕方が分かりません。 プログラムをexeから実行したのかファイルから実行したのか判別する 方法は無いのでしょうか。
259 名前:デフォルトの名無しさん mailto:sage [04/07/26 13:13] >>258 質問の意味がいまいち分からないが、 Command関数を調べると、いいかも知れんね。
260 名前:258 mailto:sage [04/07/26 14:13] >>259 サンクス!
261 名前:デフォルトの名無しさん [04/07/26 15:44] >>257 本当に助かりました! ありがとうございました!!!!!!!
262 名前:只今勉強中 mailto:sage [04/07/26 16:36] Public Sub New(ByVal idcarF1 As Integer) MyBase.New() InitializeComponent() idcarF2 = idcarF1 Dim filterIdcarF2 As integer 'Dim filterIdcarF3 As integer filterIdcarF2 = idcarF2 'filterIdcarF3 = 5 UpdateDatabase() 'SQL文 SqlDataAdapter1.SelectCommand.CommandText = "SELECT * FROM excol_data " _ & "WHERE car_id LIKE '" & filterIdcarF2 & "'" 'データセットを初期化して、データーアダプターからデーターを読み込む DsExcol1.Clear() SqlDataAdapter1.Fill(DsExcol1) End Sub ウィンドウを開くと同時にfilterIdcarF2を使って、データーを絞り込むという作業を作りました。さらに ”filterIdcarF3 = 5"で"excol_cd"の値が"5"のものを絞り込みたいのですが、SQL文の所の書き方 をどなたか教えていただけないでしょうか?
263 名前:デフォルトの名無しさん mailto:sage [04/07/26 17:34] excol_cd の型は?それがないと正確に答えられない。 たぶんSQLスレ行けって言われると思うけど。
264 名前:デフォルトの名無しさん mailto:sage [04/07/26 17:57] >>262 F2で絞り込んだものをさらにF3で絞り込むのか F2とF3を同時に発行して絞り込むのか あとInteger型のものに対してLike(あいまい)で検索かけてるけど これはこれでいいの?
265 名前:デフォルトの名無しさん mailto:sage [04/07/26 18:24] >>264 car_id が Integer型ってどうして分かるの?
266 名前:262 mailto:sage [04/07/26 18:39] すいません、もう右も左もわかんなくて、本を引き引きやってる状態で・・・。 excol_cdもcar_idも整数型です。 あと、F2で絞り込んだものをさらにF3で絞り込みたいのです。自動車の種類別 のコードがF2で、外装の色がF3で、この二つで絞り込んで、内装の色を検索し たいので・・・。 Likeがあいまい検索だというのは、いまスレを見て始めて知ったので外してみたら、 SqlDataAdapter1.Fill(DsExcol1)の行で止まってしまい、LIKEの代わりを今探して SQLのサイトとニラメッコしています。
267 名前:262 mailto:sage [04/07/26 19:13] SqlDataAdapter1.SelectCommand.CommandText = "SELECT * FROM excol_data WHERE car_id = 18" これだ18番のcar_idを持つものが表示されるのですが SqlDataAdapter1.SelectCommand.CommandText = "SELECT * FROM excol_data WHERE car_id = filterIdcarF2" だと動いてくれないようです・・・。なにか書きようがあるのでしょうか?
268 名前:デフォルトの名無しさん mailto:sage [04/07/26 19:58] >>267 困ってるのはわかるが、落ち着いて VB の入門書と SQL の入門書を読んだ方が 結局は早いと思うよ。
269 名前:デフォルトの名無しさん mailto:sage [04/07/26 21:50] SqlDataAdapter1.SelectCommand.CommandText = "SELECT * FROM excol_data WHERE car_id = " + filterIdcarF2 + " and car_id = " + filterIdcarF3 + " and excol_cd = 5"
270 名前:デフォルトの名無しさん mailto:sage [04/07/26 22:52] VBAって次に VBA.NET になるんですかね。
271 名前:デフォルトの名無しさん mailto:sage [04/07/27 00:42] String の配列に入っているテキストデータを TextBox で編集しようと思って, Dim List(200 ) As String で, TextBox1.Text = "" For a=0 To List.GetUpperBound(0) TextBox1.text &= List(a) & vbCrLf Next のようにしましたが,編集後のテキストデータを再び Stringの配列に 戻すところでつまりました. このような,何かのプログラム内での プチエディタ なんかは, どういう風に実現するのが良いのでしょうか?
272 名前:デフォルトの名無しさん mailto:sage [04/07/27 00:58] >>271 配列をそのままTextBox.Linesプロパティに入れて、編集後にTextBox.Linesをそのまま配列に戻すのは駄目なん? 的外れだったらスマソ。
273 名前:デフォルトの名無しさん mailto:sage [04/07/27 01:22] >>272 おおっ. そんなものがあったのか. ご教授ありがとうございました. テキストデータの行数がいろいろ変わるので, やっぱり For文 で回したほうがいいみたいでした. とにかく解決.ありがとうございました.
274 名前:デフォルトの名無しさん mailto:sage [04/07/27 13:35] >>272 さんのおかげで少し進んだのですが,,, 今度は,TextBoxのカーソル位置を表示してみようと思いまして,,で, Cur = TextBox1.SelectionStart If Cur <= 0 Then y = 1 : x = 1 Else c = 0 : y = 0 Do x = Cur - c c += TextBox1.Lines(y).Length + 2 If Cur < c Then Exit Do y += 1 Loop For xx = x - 1 To 0 Step -1 If AscW(TextBox1.Lines(y).Substring(xx, 1)) >= 256 Then x += 1 Next y += 1 : x += 1 End If Label1.Text = y & "行 " & x & "桁" こんなんになってしまったのですが,これだと 各行の文字数を先頭から 足して来たり,各文字が全角かどうか一文字ずつ調べたりしてて, TextBox の文字数が多くなると遅そうですよね. 他にスマートな方法があれば教えていただきたいのです.
275 名前:デフォルトの名無しさん [04/07/27 13:45] picture clip controlは.NETには入ってないのでしょうか?
276 名前:216 [04/07/27 16:42] >>217 ヒントありがとうございます キーフック自体わからず調べながらやってみたのですがなかなかうまくいきません。 SetWindowsHookExtというAPIでキーボードのメッセージを捕捉できるところまで行ったのですが 次に自分でPostMessageで別のキー入力を起こそうと思っているのですがここがダメです。 今フォームにテキストボックスが1コはっつけてやってみています Function KeyBoardProc(ByVal nCode As Integer, ByVal wParam As Integer, ByVal lParam As Integer) As Integer If nCode < 0 Or nCode = 3 Then Return CallNextHookEx(m_hHook, nCode, wParam, lParam) End If Dim ret As Integer Dim iMsg As Integer If wParam = CInt(Keys.A) Then If lParam And &H80000000 Then iMsg = WM_KEYUP Else iMsg = WM_KEYDOWN End If wParam = Keys.E PostMessage(TextBox1.Handle.ToInt32, iMsg, wParam, lParam) CallNextHookEx(m_hHook, nCode, wParam, lParam) Return 1 End If End Function TextBox1のIMEモードはひらがなにしてあります。 aのキーを打つとeがテキストに入るのですがほんとは「え」と入ってIMEで変換できる状態(えの下に点線の下線)になって欲しいのです。 的外れと思いつつImmGetContextの返値をPostMessageの第一引数にしてみましたがさっぱりでした。 何がいけないのか教えてください。
277 名前:216 mailto:sage [04/07/27 16:44] >>276 ヒントを頂いたのは >>217 ではなく >>218 でした というか217は自分でした・・・
278 名前:デフォルトの名無しさん mailto:sage [04/07/27 16:54] >>274 Win32API使ってもOKなら、user32.dllのGetCaretPosでいける。 do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1003826049&rm=10 ここの>>32 にC#版がある。
279 名前:デフォルトの名無しさん mailto:sage [04/07/27 20:32] do.sakura.ne.jp/~junkroom/cgi-bin/megabbs/readres.cgi?bo=lounge&vi=1003826049&res=32&fi=no
280 名前:デフォルトの名無しさん mailto:sage [04/07/27 21:28] >>278 >>279 C# がわからないのでいろいろ苦労しました. いや,C# の問題じゃなくて,Win32API ってやつの方かな. ヘルプとかいろいろ調べてやっとできました. Win32API ってのは初めての経験なもので... Declare Function SendMessage Lib "user32" Alias "SendMessageA" _ (ByVal hWnd As IntPtr, ByVal wMsg As Integer, ByVal wParam As Integer, ByVal lParam As Integer) As Integer ってのを作っといて, y = SendMessage(TextBox1.Handle, &HC9, -1, 0) x = TextBox1.SelectionStart - SendMessage(TextBox1.Handle, &HBB, y, 0) For xx = x - 1 To 0 Step -1 If AscW(TextBox1.Lines(y).Substring(xx, 1)) >= 256 Then x += 1 Next y += 1 : x += 1 Label1.Text = y & "行 " & x & "桁" って感じでできたみたい. 全角文字のカウントは残りましたが,だいぶ速くなりました. どうもありがとうございました.
281 名前:デフォルトの名無しさん [04/07/27 23:34] ちと教えてください。 CrystalReport に Textオブジェクト を作って、そこにモジュールレベル変数 (String型)の内容を埋め込むには、どうしたら良いでしょう? Accessのレポートなら作ったことあるんですが、 CrystalReport はちょっと勝手が違うん困ってます。 お願いします。
282 名前:デフォルトの名無しさん mailto:sage [04/07/27 23:51] >>281 データソースはDB? それとも実行時に任意に与える数値?
283 名前:281 [04/07/28 00:16] >>282 レポートそのものは、AccessDBからフィールドを引っ張ってますが、 表題の部分に、任意の文字列を入れたいのです。 別フォームでその文字列を変数に格納して、レポートに表示したい という訳です。
284 名前:デフォルトの名無しさん mailto:sage [04/07/28 00:42] 標準入力・出力するコマンドラインで動くアプリケーションがあるんだけど、 それとVB.NETでやりとりすることできるかな? (ひらたく言えばVB.NETってパイプ使える?)
285 名前:デフォルトの名無しさん [04/07/28 00:49] 標準入出力とのやりとりならできる。
286 名前:デフォルトの名無しさん mailto:sage [04/07/28 01:10] >>285 そうですか。できれば方法も教えてもらえると助かるのですが。 「〜〜というクラスを使え」とか・・・
287 名前:デフォルトの名無しさん mailto:sage [04/07/28 01:11] ヘルプで検索すれば出ると思うが… ProcessクラスとかProcessStartInfoとか参照。
288 名前:デフォルトの名無しさん mailto:sage [04/07/28 01:13] >>287 ありがとうございます。 そこまで教えてもらえればあとはググるなりMSDN使うなりしてなんとかしてきます。
289 名前:デフォルトの名無しさん mailto:sage [04/07/28 01:59] >>287 解決しました。ありがとうございます
290 名前:デフォルトの名無しさん mailto:sage [04/07/28 02:30] >>281 スマン 遅くなりマスタ 表題って言うことは1枚目のレポートヘッダと解釈していいのかね? 仮にSection1にText1というテキストボックスがあったとして Dim cr As New CrystalReport1 Dim t As CrystalDecisions.CrystalReports.Engine.TextObject t = CType(cr.Section1.ReportObjects.Item("Text1"), CrystalDecisions.CrystalReports.Engine.TextObject) t.Text = "123" cr.ExportToDisk(CrystalDecisions.[Shared].ExportFormatType.PortableDocFormat, "c:\123.pdf") '結果を出力 パラメータフィールドを使う方法とか色々やり方はあると思うので 自分はまるまるXMLから取得する方法でやってます
291 名前:デフォルトの名無しさん mailto:sage [04/07/28 13:44] FlexGrid.Netを使ってるのですが ある日を境に デザイン時は最新バージョン 実行時は古いバージョン をロードしてしまいます VSの再インストールやFlexGridの最インスコなどいろいろやってみたんですが・・・ binフォルダ内と標準インストール先のフォルダには最新バージョンの 2.1.20032.135 が 実行時にはなぜか一つ前の 2.1.20032.124 が読み込まれています
292 名前:デフォルトの名無しさん mailto:sage [04/07/28 14:21] Windowsアプリケーションから、 任意のsqlスクリプト(ファイル名.sql)を読み込んで 実行させることって出来ますか?
293 名前:291 mailto:sage [04/07/28 16:05] C:\WINNT\ASSEMBLY の情報を書き換えたらうまくいきました
294 名前:デフォルトの名無しさん [04/07/29 17:20] VB.NETで他フォームを参照するにはどうすればよいのでしょうか? 例えば、form1とform2があったとき、 form1からform2のコントロールを直接取得したいのです。 BorlandC++のときは、実行中のフォームのインスタンスを参照できた のですが、VB.NETではそれが見あたりません・・・ よいアイディアがありましたら教えて頂けると 大変助かります。よろしくお願いいたします。
295 名前:デフォルトの名無しさん [04/07/29 17:47] >>294 Form1の中に、 Form2 form2 = new Form2(); form2.hoge = "Hage"; って感じでどうですか?
296 名前:デフォルトの名無しさん mailto:sage [04/07/29 17:49] 上のほうでVB.NETでブラウザ作ってた人はどうなったんだろう? なにげに気になってたんだがw
297 名前:デフォルトの名無しさん [04/07/29 18:22] どこかにVB.NET(2003)を使って、シリアルポートからデータを受信して表示するプログラムの ソースが公開されていませんでしょうか? CreateFile とか ReadFile とかのAPIを使うっていうのはわかっているのですが、 公開されているのを見ると Public Declare Function WriteFile Lib "kernel32" Alias "WriteFile" _ (ByVal hFile As Integer, lpBuffer As Any, _ とか書いてあって(As AnyはVB.NETでは使えない) そのままだと使えないんです。 VB6のMSCommを使えばいいのかもしれませんが、APIを使いたいのです。
298 名前:デフォルトの名無しさん mailto:sage [04/07/29 18:27] >>297 なぜVBにこだわる?
299 名前:デフォルトの名無しさん [04/07/29 18:31] >>298 つっか、APIたたくならC#でもVBでもC++でも答えは似たようなもんでしょ。 あと、VBが一番安いんだっけか?
300 名前:デフォルトの名無しさん [04/07/29 18:43] >>297 その程度のことでいちいち人に聞いてるレベルじゃ、 まず間違いなくファイルI/O系のAPI使いこなすなんて無理だと思う。 ほかのスレでこんなの見つけたけど、これなんか使えるのでは? www.gotdotnet.com/Community/UserSamples/Details.aspx?SampleGuid=b06e30f9-1301-4cc6-ac14-dfe325097c69 >>294 久々に「別フォームの……」キター
301 名前:デフォルトの名無しさん mailto:sage [04/07/29 18:45] As Any って As Object で代用できなかったっけ?
302 名前:デフォルトの名無しさん mailto:sage [04/07/29 19:54] どこかにVB.netのゲームサンプルがある場所ってありますでしょうか?
303 名前:294 mailto:sage [04/07/30 00:48] >>295 ありがとうございます。 でもそれだと実行中のフォームじゃなくなってしまうので ダメなんですよね・・・
304 名前:デフォルトの名無しさん mailto:sage [04/07/30 01:34] >>303 インスタンスの扱いが理解できてるなら、Form2のインスタンス作成時に 参照をとっておけばどうにでもなることくらい分かりそうなもんだが…
305 名前:デフォルトの名無しさん mailto:sage [04/07/30 02:07] Form2ってどの段階で表示(生成)されるの? もしかして別EXE?
306 名前:デフォルトの名無しさん mailto:sage [04/07/31 00:04] >>302 難しいなぁ。どんなゲームがいいんだ?
307 名前:デフォルトの名無しさん mailto:sage [04/07/31 03:51] フォームロードイヴェントのときにそのアプリのプロセスIDを取得するのはどうやるのでしょうか?
308 名前:デフォルトの名無しさん mailto:sage [04/07/31 04:59] Velocityのようなテンプレートエンジンってないの? フリーの。
309 名前:デフォルトの名無しさん mailto:sage [04/07/31 08:47] >>307 フォームロードのときというのに深い意味があるのか? ただ単にプロセスIDのとり方が分からんだけとか?
310 名前:デフォルトの名無しさん [04/07/31 13:27] Math.Cos(90 / 180 * 3.1415) を実行すると 4.63267948799578E-05 という数値になります。 0または0に近い数値にしたいのですが、どうすればいいのでしょうか? 90の部分は0〜360度の中で変動、0度=1、90度=0、180度=-1、270度=0という結果を出したいのですが・・。 同様にMath.Sinでも変な数値にorz
311 名前:デフォルトの名無しさん mailto:sage [04/07/31 13:46] >>310 小数点以下3桁くらいで四捨五入しろ
312 名前:デフォルトの名無しさん mailto:sage [04/07/31 13:48] >>310 π = 3.1415 としているのが原因
313 名前:デフォルトの名無しさん mailto:sage [04/07/31 14:05] >>311-312 返答ありがとうございます。 311の通りにしたら数値が0になったので、桁数が多すぎると表示がおかしくなる・・・でいいのかな。
314 名前:デフォルトの名無しさん mailto:sage [04/07/31 14:14] >>313 違う違う、有効数字の考え方を勉強して来なさい。
315 名前:デフォルトの名無しさん mailto:sage [04/07/31 14:15] いや、むしろ10万桁ぐらいまで
316 名前:デフォルトの名無しさん mailto:sage [04/07/31 14:20] もしかして 4.63267948799578E-05 の意味分かってないとか?
317 名前:デフォルトの名無しさん mailto:sage [04/07/31 14:25] >>316 いや、それを変数に入れて計算したら、 4.63267948799578が数値として考えられたのか、ただの回転がとんでもないことにナターヨorz
318 名前:デフォルトの名無しさん mailto:sage [04/07/31 14:25] つまり π = 3.1415 のときに 0.0000463267948799578 ってことだから、 π = 3.141592653589793 くらいまで取ればもっと0に近づく
319 名前:デフォルトの名無しさん mailto:sage [04/07/31 14:28] いや、浮動小数点数だから「変な数値」になることにはかわりないか?
320 名前:デフォルトの名無しさん mailto:sage [04/07/31 15:19] Perlユーザーには基本を知らない人間が多いのは知ってるし 自分も最初はそうだったから人の事は言えないが、 実際にそういう場面に出くわすと疲れるな。 今、基本情報処理の試験受付してるぞ。 基礎を身につける意味で、受験&勉強してみたらどうだ?
321 名前:デフォルトの名無しさん mailto:sage [04/07/31 15:29] すまん、スレ誤爆した。orz
322 名前:デフォルトの名無しさん mailto:sage [04/07/31 19:35] >>308 ない
323 名前:4.63267948799578E-05 [04/07/31 22:05] スマソ、やっぱ根本的なプログラムミスですたorz とりあえず立体モデルの回転をさせようと思っています。 member.nifty.ne.jp/Mukai/3d.htm ここの3番までをしようと思っているんですが、2番目の『初期状態】は Dim A()() as Double = {{1.0 .0.0, 0.0},{0.0, 1.0, 0.0},{0.0, 0.0, 1.0}} でいいのでしょうか? そのあとの『M = A×M』はVB.netで表すとどうなるのか、そもそも『M』の値が分かりません・・・。 分かる方がいれば教えてください。 (ちなみにゆとり教育云々で数学の教科書には回転行列のことなんてませぬorz)
324 名前:デフォルトの名無しさん mailto:sage [04/07/31 22:41] それはプログラミングって言うより線型代数の問題じゃないのか
325 名前:デフォルトの名無しさん mailto:sage [04/07/31 23:16] >>323 ちゃんと読んでないのでちょっと良くわからないけど, 3番の M は 2番で言う A のことではないかな? M が機体の 前上右ベクトルなんだと思う. なので,M の初期値は,2番での Aの初期値とかでいいでしょう. M = A × M は,普通の3行3列の行列演算. 行列演算がわからないなら,自分で調べるか, もう一度ここで泣くかしなさい.
326 名前:4.63267948799578E-05 [04/07/31 23:43] >>325 前者了解しますた。 一番肝心なのは後者のほうですね・・・検索しても分かりませんでした、分かる方助言をお願いしますorz M[0][0]はA[0][0]とM[0][0]からM[2][2]をかけて足したもの? もうさっぱりです(´-ω-`;)
327 名前:デフォルトの名無しさん mailto:sage [04/07/31 23:52] 3次元関連の入門書読め。 ゆとり教育って…行列の掛け算も載ってないの? まあ、なんでも教科書に載ってると思う方が間違ってるともいえるが。
328 名前:デフォルトの名無しさん mailto:sage [04/08/01 00:12] >>327 僕も指数表現とか行列演算は,プログラム作るために勉強したので, 326のいいきっかけになれば良いじゃん. このホームページには冒頭に3D関係の本に載ってないと書いてあるが, それでも,3DCGの基礎は知っとかんとこの先詰まるので, >3次元関連の入門書読め。 には賛成. >>326 これじゃだめ? ttp://shigihara.hp.infoseek.co.jp/mx13.htm ttp://www.matsusaka-u.ac.jp/~aihara/pukiwiki2/index.php?%A5%D9%A5%AF%A5%C8%A5%EB%A4%C8%B9%D4%CE%F3 ただし,プログラムでやるときは, T = A × M M = T みたいにやらないとだめだよ.
329 名前:4.63267948799578E-05 [04/08/01 00:17] >>327 DirectXの本が何冊かあるけど、どれも行列を使ったサンプルはなくSetRotation・・・。 DirectXはスレ違いだけどVBで作っているからcppのサンプルは使えないしでもうダメポ(つД`;) それと2*2の行列の計算すら載ってませんでした。。
330 名前:デフォルトの名無しさん mailto:sage [04/08/01 02:44] VBでエクセルをいろいろいじりたいんですが 参考になるサイトってありますか?
331 名前:4.63267948799578E-05 mailto:sage [04/08/01 02:50] >>330 ttp://www.bcap.co.jp/hanafusa/ ・・・orz
332 名前:4.63267948799578E-05 mailto:sage [04/08/01 03:28] Microsoft® Visual Basic® アプリケーションでは、Direct3DX ユーティリティ ライブラリによって提供される D3DXMatrixRotationX 関数、D3DXMatrixRotationY 関数、および D3DXMatrixRotationZ 関数を使って回転行列を作成する。 ここまで分かったけど、そこの見えない谷に阻まれてまs orz
333 名前:デフォルトの名無しさん mailto:sage [04/08/01 06:56] Rは登録商標だが、TMは何?
334 名前:デフォルトの名無しさん mailto:sage [04/08/01 07:43] >>332 Direct3D で回転させるの? 自分で行列演算して回転させるの? とくに実現方法にこだわらないなら,いろいろ調べてできそうなやつで やれば良いんだけどね. そもそも 3D→2D を Direct3D でやるか 自分で写像するか.. Direct3D のほうが速いと思うけど. >>333 トレードマークでしょ.って,これは誤爆なのかな?
335 名前:デフォルトの名無しさん mailto:sage [04/08/01 08:00] トレードマークって?
336 名前:デフォルトの名無しさん mailto:sage [04/08/01 08:17] TM - Trade Mark 商標? R - Registered (Trade Mark) 登録商標?
337 名前:デフォルトの名無しさん mailto:sage [04/08/01 09:27] どっちがえらいの?
338 名前:デフォルトの名無しさん mailto:sage [04/08/01 10:36] たぶん 登録商標 のほうがえろいと思うけど. ここじゃなくて,法律関係の掲示板に行ったほうがいいと思うよ.
339 名前:4.63267948799578E-05 mailto:sage [04/08/01 14:04] 結局使い方が分からない罠orz >>334 方位・角度・ロールを正確に表示しつつ回転させると、やはり回転行列を使わないと・・・。 少しロールさせた状態で機首を上げると、角度と方位が変わるとともにロールもする。 この表現にもう一ヶ月近く悩まされてますorz
340 名前:デフォルトの名無しさん mailto:sage [04/08/01 22:09] >>339 じゃ >>323 のホームページにある3番のJavaプログラムみたいなものが VB でできればいいの? それくらいなら協力できるかも.
341 名前:4.63267948799578E-05 mailto:sage [04/08/01 22:36] >>340 まったくもってその通りです、できる範囲でいいので協力お願いしますorz 数学板ではなぜか叩かれるし、ここでは反応が薄いし・・・回転行列は以前何かあったのかな・・・。
342 名前:デフォルトの名無しさん mailto:sage [04/08/01 22:56] はっきり言って無理だと思われ。 他人に甘えてる態度が見え見え。 とても自分で努力しているようには見えない。 きっと数学板で叩かれてきたってのもそういう部分なんじゃないの? 基本を疎かにして上辺だけ習得しようって考えているなら、ずっと習得はできないよ。
343 名前:4.63267948799578E-05 mailto:sage [04/08/01 23:16] >>342 去年同じようなことをFlash板で言われますた。。 努力しろ!って言われても検索するところはしたし、 自分でこれかな?って思ったのは作って砕けてるしでどうしろと(;´Д`) 行列は学校で習っているものと思われているけど、最近は習わないところが多々あるので基本とか言わないでくださいorz
344 名前:デフォルトの名無しさん mailto:sage [04/08/01 23:22] >343 その辺が根本から間違ってるんだって。 「どうしろと」じゃねーよ、自分で考えるんだよ。 学校でなんでもかんでも教えてもらえると思うな、自分で調べるんだよ。 なんでも誰かに教えてもらうと考えるな。 だから叩かれるんだよ。
345 名前:4.63267948799578E-05 mailto:sage [04/08/01 23:27] >>343 > 「どうしろと」じゃねーよ、自分で考えるんだよ。 > 学校でなんでもかんでも教えてもらえると思うな、自分で調べるんだよ。 > 努力しろ!って言われても検索するところはしたし、 > 自分でこれかな?って思ったのは作って砕けてるしでどうしろと(;´Д`) 頼むから飛ばして読まないでorz てか釣りだったらスマソ
346 名前:4.63267948799578E-05 mailto:sage [04/08/01 23:28] こっちでも矛先間違えたorz
347 名前:340 mailto:sage [04/08/01 23:30] >>341 こんなのを作ってみた. 新しいプロジェクトにはっつけてみ. Dim LocX As Double = 150 Dim LocY As Double = 0 Dim LocZ As Double = 100 Dim M(,) As Double = {{1, 0, 0}, {0, 1, 0}, {0, 0, 1}} Private Sub Form1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles MyBase.KeyPress Dim Fx, Fy, Fz As Single ' 鼻先 Dim Bx, By, Bz As Single ' おしり Dim Lx, Ly, Lz As Single ' 左翼端 Dim Rx, Ry, Rz As Single ' 右翼端 Dim Tx, Ty, Tz As Single ' 尾翼 Dim gr As Graphics = MyBase.CreateGraphics If e.KeyChar = "f" Then ' 前進 LocX += 10 * M(2, 0) : LocY += 10 * M(2, 1) : LocZ += 10 * M(2, 2) Else Dim A(2, 2) As Double Dim T(2, 2) As Double If e.KeyChar = "r" Then ' 右を向く(ラダーというか自転) Dim th As Double = 22.5 * Math.PI / 180 Dim R(,) As Double = {{Math.Cos(-th), 0, -Math.Sin(-th)}, {0, 1, 0}, {Math.Sin(-th), 0, Math.Cos(-th)}} A = R End If If e.KeyChar = "u" Then ' 上を向く Dim th As Double = 5 * Math.PI / 180 Dim R(,) As Double = {{1, 0, 0}, {0, Math.Cos(-th), Math.Sin(-th)}, {0, -Math.Sin(-th), Math.Cos(-th)}} A = R End If つづく
348 名前:340 mailto:sage [04/08/01 23:30] T(0, 0) = A(0, 0) * M(0, 0) + A(0, 1) * M(1, 0) + A(0, 2) * M(2, 0) T(0, 1) = A(0, 0) * M(0, 1) + A(0, 1) * M(1, 1) + A(0, 2) * M(2, 1) T(0, 2) = A(0, 0) * M(0, 2) + A(0, 1) * M(1, 2) + A(0, 2) * M(2, 2) T(1, 0) = A(1, 0) * M(0, 0) + A(1, 1) * M(1, 0) + A(1, 2) * M(2, 0) T(1, 1) = A(1, 0) * M(0, 1) + A(1, 1) * M(1, 1) + A(1, 2) * M(2, 1) T(1, 2) = A(1, 0) * M(0, 2) + A(1, 1) * M(1, 2) + A(1, 2) * M(2, 2) T(2, 0) = A(2, 0) * M(0, 0) + A(2, 1) * M(1, 0) + A(2, 2) * M(2, 0) T(2, 1) = A(2, 0) * M(0, 1) + A(2, 1) * M(1, 1) + A(2, 2) * M(2, 1) T(2, 2) = A(2, 0) * M(0, 2) + A(2, 1) * M(1, 2) + A(2, 2) * M(2, 2) M = T End If Fx = LocX + 30 * M(2, 0) : Fy = LocY + 30 * M(2, 1) : Fz = LocZ + 30 * M(2, 2) Bx = -10 * M(2, 0) : By = -10 * M(2, 1) : Bz = -10 * M(2, 2) Lx = LocX - 20 * M(0, 0) + Bx : Ly = LocY - 20 * M(0, 1) + By : Lz = LocZ - 20 * M(0, 2) + Bz Rx = LocX + 20 * M(0, 0) + Bx : Ry = LocY + 20 * M(0, 1) + By : Rz = LocZ + 20 * M(0, 2) + Bz Tx = LocX + 10 * M(1, 0) + Bx : Ty = LocY + 10 * M(1, 1) + By : Tz = LocZ + 10 * M(1, 2) + Bz Bx += LocX : By += LocY : Bz += LocZ gr.Clear(MyBase.BackColor) gr.DrawLine(Pens.Black, Fx, Fz, Bx, Bz) gr.DrawLine(Pens.Black, Fx, Fz, Rx, Rz) gr.DrawLine(Pens.Black, Fx, Fz, Lx, Lz) gr.DrawLine(Pens.Black, Rx, Rz, Lx, Lz) gr.DrawLine(Pens.Blue, Tx, Tz, Bx, Bz) gr.DrawLine(Pens.Blue, Tx, Tz, CSng(LocX), CSng(LocZ)) End Sub
349 名前:4.63267948799578E-05 mailto:sage [04/08/01 23:33] 本当にありがとうございますorz 後ほど結果を書きますね(知らないのがいっぱい(;´Д`))
350 名前:デフォルトの名無しさん mailto:sage [04/08/01 23:34] >345 ちゃんと読んでるよ。 じゃあ聞くが、検索以外には何をした? 書籍を調べたか? 図書館に行ったか? 検索をしたのは1ヶ月で何回だ? これかな?と思って作ったものはどこがなぜダメなのか考えたのか? それに対して色々と検証はしてみたのか? 検証をしたならその結果をまとめてあるか? 基本を学べ。 人生の基本を。 調べ方の基本を。
351 名前:340 mailto:sage [04/08/01 23:37] >>341 >数学板ではなぜか叩かれるし、 叩かれて当然なくらい簡単なことを聞いてるからだと思うよ. まぁ,ここから勉強すればいいじゃん. で,上のプログラムだが,行列の掛け算は展開して書いてある. もう間違えようがないよな.なっ? キーボードの f で前進, r で右向く, u で上向く. 左向く,下向く,ロール は自分でトライして.
352 名前:4.63267948799578E-05 mailto:sage [04/08/01 23:41] >>350 本は3冊買いますた、プログラムをやってる先生にも聞きました(でも昔やったが忘れた、とorz)。 検索はほぼ毎日してます、ダメな部分を変えていったら地獄の一丁目にたどり着きますた。。 一度書いてやってから組んでいるからノートの半分以上は埋まったし・・・基本と言われることはしてます。 受験勉強せずになにしてんだか(;´Д`)
353 名前:340 mailto:sage [04/08/01 23:46] >>349 ちょっとバグってた. 予定してないキーを押すと機体が消える. とりあえず↓のようにしとけば回避できる. × Dim A(2, 2) As Double ○ Dim A(,) As Double = {{1, 0, 0}, {0, 1, 0}, {0, 0, 1}}
354 名前:4.63267948799578E-05 mailto:sage [04/08/01 23:51] >>340 改めてありがとうございました。 これこそ基本だと言われることなのですが、 指定されたキー以外を押すと止まってしまう(そのあと何を押しても動かない)のはなぜなんでしょうか。 自分はselect case 〜でやっているので他のキーを押しても何も起こらないだけなのですが。
355 名前:4.63267948799578E-05 mailto:sage [04/08/01 23:52] >>353 って先に直してくれてましたね、度々ありがとうございます。
356 名前:デフォルトの名無しさん mailto:sage [04/08/01 23:52] VB.NETでaspxを書くときは サーバープログラムとHTML部分のどちらをうえに書くのがおすすめですか? <script runat=server> </script> ↑ 逆にしてもいいけどどちらがファイルをWindowsメモ帳で編集するときに楽か ↓ <html> </html>
357 名前:340 mailto:sage [04/08/02 00:01] >>355 実は右翼端と左翼端の座標も逆みたい. 想定座標系の裏返しに表示されてる. ちゅーことは,右回転しているようで実は左回転してた. よく検証せずに出してすまんね.
358 名前:4.63267948799578E-05 mailto:sage [04/08/02 00:07] 円周率はMath.PIでokだったのか・・・>>312 のはこのことを言ってたのかorz