午後わてんのブログ

ベランダ菜園とWindows用アプリ作成(WPFとC#)

Pixtack紫陽花2.6.44.129_座標の記録を整数から小数点に移行、図形2の拡大縮小

前回
 
 
2.6.44.129
図形2において
頂点ラベルの表示位置がずれていたのを修正
画像サイズに合わせて描画画像も拡大縮小できるようにした
頂点座標を整数から小数点に移行した
 

動作の様子
画像サイズに合わせて画像の拡大縮小
 
 
頂点表示ラベル位置のズレ
イメージ 1
↓拡大
イメージ 2
単純な計算間違いでずれていたのを直した
 
 
頂点座標を整数から小数点に移行
今までの頂点座標は整数で記録していた
角度とかで途中の計算では小数点を使っていたけど最終的に記録する座標は整数
これは画面に表示するときには0.5ピクセルとかの小数点はなくて必ず整数になるから
でも今回の拡大縮小
何回も拡大縮小を繰り返すとズレが出るんじゃないかと思ったので小数点で記録
 

f:id:gogowaten:20191016155436p:plain

頂点を記録するリストの値を整数のPointから小数点も扱えるPointFに変更
ちょっと変更しただけなのにこの時点で41個のエラー報告
しかも直すとまた別の所とつじつまが合わなくなって一気に増えたりする
最初から小数点も扱う事を考えていればこんな面倒なことにはならなかった
それでも今回は昨日インストールしたVisual Studio Community 2013でできるので
楽ができた

f:id:gogowaten:20191016155449p:plain

薄い黄色のところがラクしているところ、便利機能
別のメソッドを使っているところで別窓のようにして表示できで編集もできるので
わざわざ遠く離れた場所までスクロール
編集
元の場所までスクロール
っていう手間が省ける
特に元の場所に戻るのがめんどくさいからすごい助かる

f:id:gogowaten:20191016155502p:plain

表示する時は表示したいメソッド名の上で右クリック→定義をここに表示
ショートカットキーならAlt+F12
VisualBasicExpress2010には無かった機能だと思う
 
 
PointからPointFに変更するから調べていたら
PointはPoint同士で足し算ができるってのを知った
いままではOffsetを使っていたよ…
さらにSizeを足すこともできる
 
Dim p1 As New Point(1, 1)
Dim s1 As New Size(20, 20)
Dim sf1 As New SizeF(1.5, 0.1)
Dim f1 As New PointF(0.1, 0.2)
Dim f2 As New PointF(0.1, 0.01)
Dim p2 As New Point(2, 2)
Dim p3 As New Point(3, 30)
 
Dim addp As New Point(p1 + p2)
addp = New Point(p1 + s1)
addp = p1 + p2
addp = p3 + p2
 
Dim addf As PointF
'addf = f1 + f2 'これはエラー
addf = f1 + s1
addf = f1 + p1
'addf = p1 + f1 'エラー
addf = f1 + sf1
いろいろできる
 
今までは元の座標にマウスの移動距離を足す時はOffsetを使っていた
元の座標.Offset(マウスの移動距離)
より
元の座標+マウスの移動距離
の方がわかりやすい、引き算もできる!
他にもいっぱいある
 
 
ビルド中にまたエラーが出た

f:id:gogowaten:20191016155516p:plain

ファイアウォールのゾーンアラームは関係なかったのかなあ
"MSBuildがランタイム"CLR4"とアーキテクチャ"x64"を持つタスクホストを作成できなかった、またはこのホストに接続できなかったため、"GenerateResource"タスクを実行できませんでした。次のことを確認して下さい。(1)要求されたランタイムとアーキテクチャの両方またはいずれかがコンピューター上にあること。(2)必要な実行可能ファイル"C:\Pogram Files (x86)\MSBuild\12.0\bin\amd64\MSBuild.exe"が存在し、実行可能であること。”
 

f:id:gogowaten:20191016155529p:plain

よくわかんないけど
ビルド→ソリューションのクリーン
これを実行してからリビルドしたら正常終了した
ソリューションプラットフォームをAny CPUからx64に切り替えるときに
完全に切り替わるまでに5秒位時間がかかるみたいで
それを待たずにビルドを開始したせいでエラーが出ていたみたい
イメージ 8
 
ダウンロード
ヤフーボックス
 
 
次回