プログラミングの学び方も含めて諸々

タグの編集
投稿者 zero  () 投稿日時 2008/8/19 23:39:00
pictureBox内のイメージを拡大、縮小して表示するには 
1もとのイメージを退避する 
2Graphicsオブジェクトを作成する 
3メソッドを実行して座標系を変換する 
4DrawImageメソッドを使ってもとのイメージを描画する 
 
という手順でおこなうと本に書かれてあったのですが、 
4の部分が理解できません。なぜ、もとのイメージを 
描画するのでしょうか? 
 
それとプログラミングの学び方ですが、定型処理が決まっているのなら、理解できなくても、自分が作りたいプログラムに必要な部分がでてきたときに本をみて、その通り 
コーディングするといったやり方もありでしょうか?
投稿者 y4yama  () 投稿日時 2008/8/20 00:42:00
理解して無いと、今回のあなたの疑問のとおり 
全く応用が利かないし、改造によってエラーが出ても先に進めないでしょうヨ 
次の参考リンクでは、1.退避する、は、してないですが拡大・縮小できる例となっていますね。「理解」されてみてはいかがでしょうか。 
 
_t__tp://dobon.net/vb/dotnet/graphics/zoominout.html 
 
あなたが参考にされた本に書いてあることは、初めから理解して読み進めば、1~4のつじつまが合うのではないかとは思います。部分的に疑問を持ってもダメではないですか? 
以上のことから、学び方?の指針も得られるかと思います 
(わたしも勉強中のものです。気長にやりましょう・・)
投稿者 るしぇ  () 投稿日時 2008/8/20 00:52:00
例えば、現実世界で絵を拡大・縮小して模写することを考えてみては? 
1もとの絵を見てイメージを脳に記憶する 
2絵の具やキャンバスを用意する 
3キャンバスの比率を考えてどこから描けばいいか決める 
4もとの絵のイメージを思い出しながら描く 
 
なぜ、4を実行する必要があるのですか? 
 
まぁ、ただ、実際のプログラムでは PictureBox に自動で再描画する機能が 
あるからコードが必要かどうかとは別の話ですが。 
 
 
>それとプログラミングの学び方ですが、定型処理が決まっているのなら、 
>理解できなくても、自分が作りたいプログラムに必要な部分がでてきた 
>ときに本をみて、その通りコーディングするといったやり方もありでしょうか?  
要は、それで何が出来るようになって、何が出来ないままなのか。 
有利なことと不利なことを把握することでしょう。 
それでありかなしかは立場によって違います。目的によって違います。 
答えは1つではありません。 
 
最初の質問で4を実行する必要があるのかどうかは、理解しないと分かり 
ませんよね。それを知りたいという目的があるのであれば、理解できる部分は 
できるだけ深くまで理解しようと意識しておくべきでは?
投稿者 neptune  () 投稿日時 2008/8/20 01:19:00
>>2 
こんにちは 
 
描画に付いてはパス。 
 
>理解できなくても、自分が作りたいプログラムに必要な 
>部分がでてきたときに本をみて、その通り  
>コーディングするといったやり方もありでしょうか?  
え~、私の場合を話しますと、現在、自分用にオークション監視 
用のプログラムを書こうと、いろいろ調べてます。 
管理人さんのるきおさんからSOAPを使えば比較的簡単では 
というアドバイスを頂きました。 
 が、web関係を全くやった事のない私には全然簡単ではありませんでした。 
 net frameworkのクラスを使えばSOAPを簡単に利用できると言う所までは 
理解できましたが、ここで、XMLもある程度は知っておかなければ 
ならないと言う事がわかりました。・・・私は知りません。で、現在どう勉強しようか悩んでます。ボチボチですけど。 
 
学ぶ順序的にはXML→SOAPの順序が正しいと思います。(多分) 
 
この手のはサンプルもあんまり無いみたいでキツイです。 
 
 
 我が身を以て例を示してしまいましたが、このように何かやろうと思えば色々知っておかなければならない事が 
多々あります。やはり順序良く学ぶのが良いと思いますよ。 
 
便乗になりますが、識者の方々。> 
取り合えずwsdlに書かれている仕様を理解する助けになるサイトありませんかね。 
ご紹介頂けたら幸いです。
投稿者 neptune  () 投稿日時 2008/8/20 07:09:00
>>3 
たびたびすみません。 
 
>取り合えずwsdlに書かれている仕様を理解する助けになるサイトありませんかね。  
ですが、 
Yahoo!デベロッパーネットワークのYahoo!オークション 
の中の<REST>の中にAPI?の仕様が書いてありました。 
お騒がせしました。
投稿者 zero  () 投稿日時 2008/8/20 22:55:00
みなさん、貴重なアドバイス感謝します。 
しかし、VBでグラフィック関係を扱うのは 
かなり面倒でかつ奥が深くどつぼにはまりそうです。 
もう少し何とか簡潔なコードで書けるようにならないか 
と、VBの進化を期待しています。(というのは 
ちと偉そうですね) 
ともあれせっかく本も買い込んだので無駄にならないように、挫折しないことを目標に、しょぼいプログラムを 
一つでもつくれたら大喜びして、お祝いするような 
気持ちで息長く、果て遠き道をカメのように歩んでいきます。
投稿者 るきお  () 投稿日時 2008/8/21 06:00:00
>しかし、VBでグラフィック関係を扱うのは  
>かなり面倒でかつ奥が深くどつぼにはまりそうです。  
>もう少し何とか簡潔なコードで書けるようにならないか  
>と、VBの進化を期待しています。(というのは  
>ちと偉そうですね)  
確かにもうちょっと簡単な方法を用意してほしいと思う時もあります。でも、VBのグラフィック機能はかなりよくできている方ですよ。 
 
ちなみに、画像を拡大するだけなら実は1行でもできます。 
Graphics.FromImage(PictureBox1.Image).DrawImage(PictureBox1.Image.Clone, 0, 0, PictureBox1.Image.Width * 1.5F, PictureBox1.Image.Height * 1.5F) 
PictureBox1.Invalidate() 
 
Invalidateいれると2行になってしまいますが・・・。 
 
>neptuneさん、 
wsdlがあるのなら、VB付属(?)のwsdl.exeでプロキシクラスを生成できます。Webサービスにはそのプロキシクラス経由でアクセスします。確か、wsdl.exeの使い方はこんな感じです。 
wsdl.exe /l:vb mywsdl.wsdl 
 
RESTならwsdlは不要ですようね。たぶんWebClientクラスを経由したアクセスになると思います。
投稿者 ラキシス  () 投稿日時 2008/8/25 23:27:00
> しかし、VBでグラフィック関係を扱うのは  
> かなり面倒でかつ奥が深くどつぼにはまりそうです。  
> もう少し何とか簡潔なコードで書けるようにならないか  
 
え~っと、どんなものと比べて言われてるのでしょうか? 
 
iPhoneやBrewやDirectXなどと比べたら楽に扱える物になっていると思いますが? 
 
ただし、タイマーを使わないでイベントだけでやっていると、コードの書き順などにテクニックが必要になってくる点においては大変だなぁと思います。 
 
勉強の仕方についてですが、本やサイトに書かれている動くプログラムを眺めて理解するという事をよくやったりします。 
答えを知ってからなぜその答えになるのかを勉強するのと答えに到達するために一つ一つ順番に勉強していくのと、自分のやりやすい勉強の方法を身につければいいのではないかと思います。