- 1 名前:デフォルトの名無しさん(ワッチョイ f97b-lsIp) mailto:sage [2016/10/08(土) 21:33:26.22 ID:KfBpvv2w0.net]
- 「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。
他のスレッドでは書き込めないような低レベルな質問、 質問者自身なんだか意味がよく分からない質問、 ググろうにもキーワードが分からないなど、勇気をもって書き込んでください。 内容に応じて他スレ・他板へ行くことを勧められることがあります。ご了承下さい。 なお、テンプレが読めない回答者は邪魔なので後述のC#相談室に移動して下さい。 C#に関係の無い話題や荒らしの相手や罵倒レスはやめてください >>980を踏んだ人は新スレを建てて下さい。 >>980が無理な場合、話し合って新スレを建てる人を決めて下さい。 ■前スレ ふらっと C#,C♯,C#(初心者用) Part124 echo.2ch.net/test/read.cgi/tech/1471004887/ ■関連スレ C#, C♯, C#相談室 Part91 echo.2ch.net/test/read.cgi/tech/1467142749/ ■コードを貼る場合は↓を使いましょう。 ideone.com/ https://dotnetfiddle.net/ ■情報源 https://msdn.microsoft.com/en-us/library/gg145045.aspx referencesource.microsoft.com/ VIPQ2_EXTDAT: checked:vvvvv:1000:512:----: EXT was configured
- 454 名前:デフォルトの名無しさん (ワッチョイ ef9f-WrRy) mailto:sage [2016/11/14(月) 05:52:45.45 ID:/TJLzgQW0.net]
- それ最適化でswitchが丸ごと無くなるんじゃないの?
- 455 名前:デフォルトの名無しさん (ワッチョイ 4bc0-WVKM) mailto:sage [2016/11/14(月) 12:20:13.87 ID:SBSYakm50.net]
- どうせいつもの100万回で数百msの差だろと思ったら、試行回数も差も一桁違ってた・・・
考えるだけ無駄だわな
- 456 名前:デフォルトの名無しさん (アウアウオー Saff-IeI3) mailto:sage [2016/11/14(月) 12:27:16.06 ID:QoZcYnGka.net]
- >>448
繰り返し回数よりcaseの数の方が肝だと思うけど
- 457 名前:デフォルトの名無しさん (ワッチョイ 6f7d-teht) mailto:sage [2016/11/14(月) 13:04:48.53 ID:BB8aMjT80.net]
- DebugだとDictionaryだけ速いんだな
- 458 名前:デフォルトの名無しさん (ワッチョイ b39f-cYps) mailto:sage [2016/11/14(月) 15:03:27.08 ID:+U0ySF0b0.net]
- VS2013 .Net4.5.1
文字列のswitchがDictionary<string, int>→switch(int)みたいなILになってるので test4がわずかに速いな TestPattern2もstringCaseTestPattern1呼んでるぞ
- 459 名前:デフォルトの名無しさん (ワッチョイ 5387-MJQ8) [2016/11/14(月) 17:41:26.21 ID:Qgf5Rn5/0.net]
- 話に割り込んでしまってすみません。
次のようなことをやりたいのですが、そもそも可能でしょうか。 メインフォームで時間のかかるループ処理をやっていて、 その進行状況を別フォームを表示して、 別フォーム上に配置したプログレスバーで表示したいと思っています。 以前、ループ処理自体を別フォームで行っいプログレスバー表示はさせたことはありますが、 今回は、ループ処理はメインフォームで行いたいと考えていますが、 そもそも可能なのでしょうか。
- 460 名前:デフォルトの名無しさん (オッペケ Sr2f-WFrU) mailto:sage [2016/11/14(月) 19:12:23.97 ID:xSfNgSMsr.net]
- >>454
今なら、async, await 一択。
- 461 名前:デフォルトの名無しさん (ワッチョイ 6f7d-teht) mailto:sage [2016/11/14(月) 19:32:29.47 ID:42tRiMkK0.net]
- >>448
public static readonly Action 〜 で Actionのenumっぽいクラス作ると速い
- 462 名前:デフォルトの名無しさん (ドコグロ MM5f-wOPQ) mailto:sage [2016/11/14(月) 19:51:26.73 ID:kXxSR+DwM.net]
- >>454
できるけどはたから見たらなんでそんな構成なの? って感じ
- 463 名前:デフォルトの名無しさん (ワッチョイ 5387-MJQ8) mailto:sage [2016/11/14(月) 20:15:42.84 ID:Qgf5Rn5/0.net]
- >>455
ありがとうございます。 async使った作り方を検討してみます。 >>457 本当はプログレスバーを表示しているフォームでループ処理を実行できればいいのですが、 引数が大量になったりしてしまうので、メインフォームで処理を行いたいのです。 プログレスバーを別フォームにするのは、まあ、見栄えの問題ですね。
- 464 名前:デフォルトの名無しさん (スップ Sd1f-wOPQ) mailto:sage [2016/11/14(月) 21:22:47.48 ID:xjbQt/rmd.net]
- >>453
なぜ今どき4.5.1?
- 465 名前:デフォルトの名無しさん (スププ Sd1f-PwKp) mailto:sage [2016/11/14(月) 21:33:34.62 ID:gWk7pXe+d.net]
- >>459
しょうもないことにつっかかるね
- 466 名前:デフォルトの名無しさん (ワッチョイ b3dc-dJcJ) mailto:sage [2016/11/14(月) 21:35:10.48 ID:aL/Lu1lD0.net]
- .NET4.6はAPIレベルではほとんど変わってないしどうせインプレース更新で互換性あるから
わざわざターゲットバージョンを上げて動作環境を狭める意味はほぼ無いだろ
- 467 名前:デフォルトの名無しさん (ワッチョイ 6f3c-wOPQ) mailto:sage [2016/11/14(月) 21:46:05.31 ID:NhhLZ04e0.net]
- >>458
別にやりたいようにやればいいんだが > 引数が大量になったりしてしまうので って言う理由はちょっとどうかと思う...
- 468 名前:デフォルトの名無しさん (ワッチョイ 57cb-wOPQ) mailto:sage [2016/11/14(月) 22:34:09.85 ID:3a+GOjdi0.net]
- >>459
いやあああああああああああ! 2.0ででちゃううううううう! 2.0 のままリリースしちゃうのぉおおおおおお! 恥ずかしいいいいいいい!
- 469 名前:デフォルトの名無しさん (ワッチョイ 033c-wOPQ) mailto:sage [2016/11/14(月) 23:53:59.37 ID:OlP0vwcQ0.net]
- >>461
サポート切れのバージョンをなんでわざわざ使ってんのかって突っ込みだろカス
- 470 名前:デフォルトの名無しさん (ワッチョイ 57cb-wOPQ) mailto:sage [2016/11/15(火) 00:09:10.73 ID:vnzlS/G+0.net]
- なんでって
だってバージョン上げたら テストし直しじゃんよ そんな金ないだろっていうか 客が金出さねぇって言ってる以上動けないだろ って人多いと思うぜ 共存できない.netのバージョンの製品が同梱されてるときとか最新で組んでドヤ顔しててもうまく行くんだろか? それとも全部最新の.netでコンパイルし直すんだろか?
- 471 名前:デフォルトの名無しさん (ワッチョイ 57cb-wOPQ) mailto:sage [2016/11/15(火) 00:11:49.01 ID:vnzlS/G+0.net]
- すまん知識0だけど
職場の人間も似たような感じだったので 結局よくわからず下位バージョンに合わせて出しちゃったぜ
- 472 名前:デフォルトの名無しさん (ブーイモ MM1f-9MLS) mailto:sage [2016/11/15(火) 01:15:16.80 ID:R9/5GWGeM.net]
- バージョン非互換なんて滅多に起こらんよ
仮に起こっても数個のコンポーネントを少し弄る程度で解決できる 無論アプリの作りがマトモならって前提だけどな
- 473 名前:デフォルトの名無しさん (ワッチョイ 033c-wOPQ) mailto:sage [2016/11/15(火) 01:16:44.44 ID:MJdWHDsF0.net]
- >>465
再コンパ
- 474 名前:Cルする必要はないって、アホの>>461ですら言ってるじゃねーか []
- [ここ壊れてます]
- 475 名前:デフォルトの名無しさん (スップ Sd1f-wOPQ) mailto:sage [2016/11/15(火) 01:18:25.54 ID:5Vfxrfmvd.net]
- >>467
C#6の中点くらいかな、まああれはUnicodeのせいだけど
- 476 名前:デフォルトの名無しさん (スフッ Sd1f-wOPQ) mailto:sage [2016/11/15(火) 02:29:36.45 ID:7Oesxf9ud.net]
- >>467
それを「起こってない」と検証する金の出処の話じゃないの? よく分かるけど。 起こってないのと、めったに起こらないし多分大丈夫、は違う。 鍵は全部締まってるの確認したよ、と、鍵締めたかどうか定かじゃないけどこの辺は治安いいから大丈夫、は全然違う。
- 477 名前:デフォルトの名無しさん (ワッチョイ a70d-Cgco) [2016/11/15(火) 02:53:21.41 ID:NoTRkZnD0.net]
- WPFアプリケーションで言語を動的に切り替え可能な多言語化をしたいのですが、
調べてみるとResource.resxを使ったりxamlのResourceDictionaryを使ったりと色々あって困惑しています。 どのようなやり方が最適解なのでしょうか?
- 478 名前:デフォルトの名無しさん (ワッチョイ 033c-wOPQ) mailto:sage [2016/11/15(火) 05:52:35.99 ID:MJdWHDsF0.net]
- >>470
サポート切れのバージョンを使い続けることによるリスクより、4.5.1から4.5.2へのインプレース更新の方がはるかに安全だろ
- 479 名前:デフォルトの名無しさん (ワッチョイ 033c-wOPQ) mailto:sage [2016/11/15(火) 05:53:50.91 ID:MJdWHDsF0.net]
- >>471
デフォルトのロケールは?
- 480 名前:デフォルトの名無しさん (ワッチョイ 377b-EKpQ) mailto:sage [2016/11/15(火) 08:10:51.58 ID:7W+Eb75M0.net]
- public class FI
{ FileInfo _ff; string _dispdata; public FI(FileInfo fi) { FI(fi, false); //★error になる。なんとかならないのか? } public FI(FileInfo fi, bool mode) { _ff = fi; if(mode) _dispdata = string .Format ("{0,20}:{1,-35} {2,-100}", _ff.CreationTime, _ff.Name, _ff.DirectoryName ); else _dispdata = string .Format ("{0,20}:{1,-35}", _ff.CreationTime, _ff.Name); } public FileInfo finfo{ //★FileInfoという名前にしたいのにできない。何とかならないか? get { return _ff; } } } } ★をみて感想をください。
- 481 名前:デフォルトの名無しさん (スフッ Sd1f-wOPQ) mailto:sage [2016/11/15(火) 08:37:11.25 ID:7Oesxf9ud.net]
- >>472
サポート切れも何も。。 リスクとコストを天秤にかけるのは必要なことだろ。 はるかに、とか美味しい言葉で修飾せんと。 その程度の意識でみんなバージョン上げてんだなって思うな。
- 482 名前:デフォルトの名無しさん (ワッチョイ 377b-EKpQ) [2016/11/15(火) 08:51:04.93 ID:7W+Eb75M0.net]
- 474解決しました。たんくす
- 483 名前:デフォルトの名無しさん (スッップ Sd1f-wOPQ) mailto:sage [2016/11/15(火) 12:05:01.57 ID:Sy8HLWAKd.net]
- >>475
お前サポート切れの.NET保証できんの?すげえな尊敬するわ
- 484 名前:デフォルトの名無しさん (スフッ Sd1f-wOPQ) mailto:sage [2016/11/15(火) 12:14:17.64 ID:7Oesxf9ud.net]
- >>477
保証をどう定義するかでしょ。 このシステムは動きます、の保証はするよ。
- 485 名前:デフォルトの名無しさん (ワッチョイ 4bc0-WVKM) mailto:sage [2016/11/15(火) 12:24:10.02 ID:pMl4CMoG0.net]
- MSは保証してないけど動くから保証しますで通用するからまた困るんだよな
- 486 名前:デフォルトの名無しさん (アウアウオー Saff-IeI3) mailto:sage [2016/11/15(火) 12:32:14.65 ID:CGrdF/ira.net]
- サポートっていうのは単に何か不具合が見つかった時にMS様がそれを修正する努力はします、
って程度の意味だからさあ... ビジネストーク的には意味があると思うけど実質的な意味はあんまりないと思うけどね個人的には
- 487 名前:デフォルトの名無しさん (スッップ Sd1f-wOPQ) mailto:sage [2016/11/15(火) 12:38:22.77 ID:Sy8HLWAKd.net]
- >>478
脆弱性が見つかった時は?
- 488 名前:デフォルトの名無しさん (スププ Sd1f-wOPQ) mailto:sage [2016/11/15(火) 12:55:55.09 ID:Z3/Q/mWPd.net]
- 客の社内環境が最新の.NET Framework許可してない場合も珍しくないしな
- 489 名前:デフォルトの名無しさん (ササクッテロレ Sp2f-9MLS) mailto:sage [2016/11/15(火) 13:15:07.06 ID:mY0gDrgyp.net]
- >>481
保守で定期的に金取ってるなら契約次第 そうでないなら「フレームワーク更新作業するなら発注してね」でいいだろ
- 490 名前:デフォルトの名無しさん (スフッ Sd1f-wOPQ) mailto:sage [2016/11/15(火) 14:20:03.90 ID:7Oesxf9ud.net]
- >>481
その脆弱性がシステムにとって致命的かどうか、 システム全体の検証工数と回避修正+波及箇所検証工数でどちらが勝つか(大体はラッパー作って使ってるから、その修正と波及箇所の動作検証で済む) 客が金どれだけ持ってるか、 の折り合いついた所だと思うよ。
- 491 名前:デフォルトの名無しさん (ワッチョイ 6f7d-teht) mailto:sage [2016/11/15(火) 14:37:14.63 ID:0U4qoaFD0.net]
- XP対応の4を使い続ける
- 492 名前:デフォルトの名無しさん (スプッッ Sd1f-wOPQ) mailto:sage [2016/11/15(火) 15:43:51.26 ID:ODQ0lCKgd.net]
- >>482
誰も最新の話なんてしてないよ
- 493 名前:デフォルトの名無しさん (スプッッ Sd1f-wOPQ) mailto:sage [2016/11/15(火) 15:44:52.48 ID:ODQ0lCKgd.net]
- >>484
つまり、脆弱性が見つかってから検証を始めるってことね
- 494 名前:デフォルトの名無しさん (スフッ Sd1f-wOPQ) mailto:sage [2016/11/15(火) 17:05:58.01 ID:7Oesxf9ud.net]
- >>487
いや、改修したり、OSやミドルやライブラリやフレームワークを更新したら、その検証をするけど、 脆弱性が発見された箇所自体はKBやらで出た内容からソース中の出現箇所出して、依存ツリー出して把握するくらいだよ、その時点では。
- 495 名前:デフォルトの名無しさん (ワッチョイ 339a-zoBz) [2016/11/15(火) 17:08:40.62 ID:/cCbWJxV0.net]
- 既存のCで書かれたエミュレータをアンマネージドDLL化して、C#のGUIアプリから
呼び出して使えないかと思っています。 DLLの関数(1フレーム分進めるなど)を呼び出すことはできると思いますが、 その際にDLL内の特定の関数(ポートへの出力、画面更新など)
- 496 名前:ェ実行されたとき、
C#アプリ側でイベントとして捕捉する(C#側の関数が実行される)ようなことは できるんでしょうか。 [] - [ここ壊れてます]
- 497 名前:デフォルトの名無しさん (ワッチョイ 8fe1-PwKp) mailto:sage [2016/11/15(火) 17:22:31.09 ID:PhOBmSZe0.net]
- >>489
コールバックとかを使えば多分行ける うまく行かないことがあればC++/CLIの出番かな
- 498 名前:デフォルトの名無しさん (ワッチョイ 3319-7KSV) mailto:sage [2016/11/15(火) 17:24:00.58 ID:weebeOlr0.net]
- そのDLLのソースを書き換えても良いのなら、
DLL側はコールバック登録関数を公開して必要なときに登録されてるコールバックを呼び出す って形は取れるけど。
- 499 名前:デフォルトの名無しさん (JP 0H6f-2n2A) mailto:sage [2016/11/15(火) 17:46:08.44 ID:4QSE1fRAH.net]
- オンメモリで改ざん
- 500 名前:デフォルトの名無しさん (ワッチョイ a70d-Cgco) [2016/11/15(火) 17:50:32.92 ID:NoTRkZnD0.net]
- >>473
日本語です
- 501 名前:デフォルトの名無しさん (ワッチョイ 4b49-VsRF) mailto:sage [2016/11/15(火) 22:28:52.68 ID:YqUWOmsB0.net]
- >>471
Resource.resxを使うかResourceDictionaryを使うかは好み。 Resource.resxはGUIで設定できる。ロードする部分はシステムのロケール依存で良ければ自動。サテライトアセンブリが生成される ResourceDictionaryはxamlを自分で記述する。ロードする部分も自分で作成。サテライトアセンブリが生成されない 個人的にはResource.resxの方が好きかな。 で、動的に切り替えって、起動時に切り替えるだけじゃ足りない? 任意のタイミングで既存のGUIもぱっと切り替えるのが必要だとすると、上記だけじゃ駄目で、 ラッパー的なクラスを作成して、それに対してバインディングするようにする必要がある。
- 502 名前:デフォルトの名無しさん (ワッチョイ a70d-Cgco) [2016/11/15(火) 23:15:19.81 ID:NoTRkZnD0.net]
- >>494
どちらとも動的に切り替えるところまでは作りました どっちにするかまだ迷っています どちらが世界的に主流でしょうか?
- 503 名前:デフォルトの名無しさん (ワッチョイ b3dc-PwKp) mailto:sage [2016/11/15(火) 23:23:38.02 ID:r0bdrrlQ0.net]
- >>495
WPF自体が主流には程遠いから好きにしろとしか
- 504 名前:デフォルトの名無しさん (ワッチョイ 3703-M1Ou) mailto:sage [2016/11/16(水) 14:46:22.40 ID:oJqix3AL0.net]
- ArrayListを使用した2次元配列を構築したいと考えております。
データは「実験項目」、「測定値」でファイルから読み出します。 一つの「実験項目」に対して任意数の「測定値」があり、任意数の「実験項目」があります。 ファイルを読み出さないとそれぞれの要素数がわからないため動的配列を使いたいと思っています。 「実験項目」、「測定値」共に1,000以内程度の予想です。 ArrayListは扱えていると思っているのですが2次元にする方法がよくわかりません。 ご教示いただけないでしょうか。よろしくお願いします。
- 505 名前:デフォルトの名無しさん (アウアウオー Saff-IeI3) mailto:sage [2016/11/16(水) 15:20:15.99 ID:Nmwy7smwa.net]
- >>497
ArrayListは10年以上前に役割を終えた旧式だからもう使っちゃだめ 代わりにList<T>でも使って List<T>も2次元にはできないが、そもそも2次元にする必要がない - TestItem(実験項目)にMeasured(測定値)のリストList<Measured>を持たせて、 - TestItemのリストList<TestItem>を作る これでOKでしょ 知らんけど
- 506 名前:デフォルトの名無しさん (ササクッテロレ Sp2f-9MLS) mailto:sage [2016/11/16(水) 15:31:15.35 ID:E4kD/LBwp.net]
- >>497
TestItem(実験項目)にMeasured(測定値)のリストを持たせたくない場合はDictionary<TestItem,List<Measured>>とか
- 507 名前:デフォルトの名無しさん (ワッチョイ 3703-M1Ou) mailto:sage [2016/11/16(水) 16:11:42.19 ID:oJqix3AL0.net]
- >>498-499
ご教示ありがとうございます。 やはりArrayListは非推奨なのですね。 List、Dictionaryを勉強してみます。
- 508 名前:デフォルトの名無しさん (オッペケ Sr2f-WFrU) mailto:sage [2016/11/16(水) 20:05:48.43 ID:qGX/+c5Jr.net]
- 何故に、そんなレガシーな亡霊がこの世に??
- 509 名前:デフォルトの名無しさん (ブーイモ MMef-9MLS) mailto:sage [2016/11/16(水) 20:19:51.08 ID:gtmrvLDzM.net]
- リファクタリングは悪
回帰テスト嫌だからコピペして新規追加しろ 日本はそういう文化だから理解しがたいレガシーコードで溢れかえる
- 510 名前:デフォルトの名無しさん (ワッチョイ 4bc0-WVKM) mailto:sage [2016/11/16(水) 20:38:27.57 ID:MMds4sI/0.net]
- >>501
キーワードでググったら上位にくるんじゃね あの手の骨董品コードが残り続けるのは本当害悪でしか無いわ
- 511 名前:デフォルトの名無しさん (ワッチョイ d3d6-teht) mailto:sage [2016/11/16(水) 20:49:59.04 ID:Ws6HNRv60.net]
- 文句はいつまでも互換性を持たせているマイクロソフトに言え
- 512 名前:デフォルトの名無しさん (ワッチョイ 273c-WVKM) mailto:sage [2016/11/16(水) 20:57:40.76 ID:MeLHc+gy0.net]
- 初心者です。
先日測定機のプログラムを作りました。 データ取得の処理中に進捗状況を表示させたくなりました。 フリーズしてるのと勘違いされないようにしたいわけです。 少し調べてみたら、どうやらマルチスレッドなるもの 使うようなんですが、これについて優しく書かれている サイトなどあればお教えいただければうれしいです。 よろしくおねがいします。
- 513 名前:デフォルトの名無しさん (ワッチョイ b3dc-PwKp) mailto:sage [2016/11/16(水) 21:08:39.93 ID:1s2sSz8X0.net]
- >>505
自分でThreadやTaskを明示的に作って使う必要があるケースは少ない 再現困難なバグを引き起こしやすいから、マルチスレッドを明示的に使うのは非同期プログラミングに慣れないうちはなるべく避けた方がいい シリアルか独自のSDKがあるのか知らないけど、何かの外部装置からデータ取ってるなら非同期で取るAPIは用意されてるだろ? もし同期APIしか用意されてない糞SDKなら仕方ないが、そうでない限りは用意された非同期APIを使うことを優先したらいい データをどうやって取ってるのかをお前が晒せばもっと具体的なアドバイスもできる
- 514 名前:デフォルトの名無しさん (ワッチョイ 37dc-WVKM) mailto:sage [2016/11/16(水) 21:10:52.22 ID:QT5715if0.net]
- >>505
時間のかかる処理をバックグラウンドで実行するには?[2.0のみ、C#、VB] − @IT www.atmarkit.co.jp/fdotnet/dotnettips/436bgworker/bgworker.html .NET開発における非同期処理の基礎と歴史 − @IT www.atmarkit.co.jp/fdotnet/chushin/masterasync_01/masterasync_01_01.html
- 515 名前:デフォルトの名無しさん (ワッチョイ cb94-5NgJ) mailto:sage [2016/11/16(水) 22:04:51.69 ID:PcfUB0DB0.net]
- 上のページはBackgroundWorkerの話で古すぎるし、
下のは歴史から説きおこしてるから最初から読むと長すぎる async awaitについて書いてあるここ↓くらいから読むのがいいかと www.atmarkit.co.jp/fdotnet/chushin/masterasync_02/masterasync_02_01.html 非同期API使うにしても、async await がわかってないと辛いだろうし
- 516 名前:デフォルトの名無しさん (アウアウオー Saff-IeI3) mailto:sage [2016/11/16(水) 22:20:31.36 ID:5Ihw572qa.net]
- そもそも非同期とは何かを理解せずにいきなりそんなの読んで理解できると思えませんがw
- 517 名前:デフォルトの名無しさん (ワッチョイ b3dc-PwKp) mailto:sage [2016/11/16(水) 23:41:29.23 ID:1s2sSz8X0.net]
- 初心者ならまずはEAPから入るのがいいんじゃないか
awaitみたいな黒魔獣と違って仕組みが単純明快だし、使う側からすれば完全にシングルスレッドで非同期ができる 排他処理だのデッドロックだのいきなりマルチスレッド特有の問題を抱え込むより、 まずは純粋に非同期プログラミングのところだけを抽出して順番に理解していけばいいと思うよ
- 518 名前:デフォルトの名無しさん (ワッチョイ 2376-NcFo) mailto:sage [2016/11/16(水) 23:57:52.40 ID:cEthX6dM0.net]
- もっと単純に↓のworkメソッドの中で10%ごとぐらいにラベル表示とかするだけの話じゃないかな
www.atmarkit.co.jp/ait/articles/0506/17/news111.html まずは目的達成を
- 519 名前:デフォルトの名無しさん (ワッチョイ 9c7b-XpIe) mailto:sage [2016/11/17(木) 00:43:08.63 ID:KQ/jS2NF0.net]
- ベジエ曲線の質問なんですが
P1(10,10) P2(10,40) P3(40,10) P4(40,40) このような4点のベジエがあったとして、この放物線のP4の延長線を書きたい場合、 どのようにすればいいのでしょうか?
- 520 名前:デフォルトの名無しさん (ワッチョイ 3f49-YqEk) mailto:sage [2016/11/17(木) 00:56:22.10 ID:ViKAooID0.net]
- Invoke()も今は推奨されないんじゃないかなぁ
- 521 名前:デフォルトの名無しさん (アウアウオー Sa36-MfQN) mailto:sage [2016/11/17(木) 01:43:36.99 ID:ypT0aoV/a.net]
- >>512
よく知らんけど、終了点の延長戦の方向は制御点から終了点向かう ベクトルに等しいはずだから、後は簡単な高校数学じゃないの?
- 522 名前:デフォルトの名無しさん (ワッチョイ 3faf-N7ik) mailto:sage [2016/11/17(木) 02:39:29.89 ID:Dxu6gLWd0.net]
- スレッド周りは古い情報が残りまくりでどうしたらいいのか難しすぎ
非同期処理とかで検索すると普通にasync awaitが見つかるけどプログレスバーとかで検索すると未だにBackgroundWorkerを使うとか書いてるから困る
- 523 名前:デフォルトの名無しさん (ワッチョイ 9c7b-XpIe) mailto:sage [2016/11/17(木) 03:14:03.30 ID:KQ/jS2NF0.net]
- >>514
自分の説明が下手でも仕分けないのですが、 要するに2次曲線をベジエ曲線を使って描画し、 曲線の終点の延長を追記で描画したいということなのですが
- 524 名前:デフォルトの名無しさん (ワッチョイ b5dc-2XGH) mailto:sage [2016/11/17(木) 07:07:26.21 ID:iGNJFpBr0.net]
- >>516
端点とそこでの一次の傾きさえ一致してれば滑らかに繋がってるように見える。で、それは514で答えが出てる。 二次の傾きには任意性があって、どう決めたら最も美しいかはあくまでお前の感性の問題だ。 その感性を数学的に定義するのはお前の仕事。それができたら答えは出たようなもんだろ。
- 525 名前:デフォルトの名無しさん (ワッチョイ 7c7b-8L7G) [2016/11/17(木) 07:33:08.85 ID:B+vLCAoF0.net]
- >516
俺もそれ興味あるな。でもペジェー曲線を描く関数は簡単にわかるだろ。 それをプログラム的にどう実現するかが知りたいってことだよね。 バーンスタイン基底関数のブレンディング関数ではN点の式になってるが、実際には n点でかいたベジェにn+1点を書く場合全部書き直すのは不経済だよな。 bz = new Bezier(p1,p2); bz = bz.add(p3); bz = bz.add(p4); bz = bz.add(p5); bz = bz.add(p6); foreach pp in bz{ bz.pset(whiteColor, pp.xl,pp.yl);//前のポイントを消す bz.pset(RedColor, pp.x,pp.y);//今回を書く } こんな感じじゃないか? グラフィックはやったことないから知らんけど。わからんな前のラインを消すのが 難しいな。
- 526 名前:デフォルトの名無しさん (ワッチョイ 7c7b-8L7G) [2016/11/17(木) 07:37:55.62 ID:B+vLCAoF0.net]
- まあpsetよりもplineだろうな。普通のCADはベクトルで管理していて、書き直しは
やはり、前のラインを記憶していて、背景色で上書きして消すのだと思うよ。
- 527 名前:デフォルトの名無しさん (ワッチョイ 7c7b-8L7G) [2016/11/17(木) 07:46:11.48 ID:B+vLCAoF0.net]
- bz = new Bezier(p1,p2);
bz = bz.add(p3); bz = bz.add(p4); bz = bz.add(p5); bz = bz.add(p6); bz.write(red, Style1); これでいいや、制御点はaddするときにわかってるからね。 書くときにベクトルは全部記憶してるからwriteするときに消して書けばいい。 しかし、背景色が違うところをまたがるときはどうすんの? って問題があるな。
- 528 名前:デフォルトの名無しさん (ワッチョイ 7c7b-8L7G) [2016/11/17(木) 08:20:53.64 ID:B+vLCAoF0.net]
- >516
ツールはなに? DirectXとか? どういう環境でかこうとしているんかで かなり違うと思う。 DirectXだったら関数についてるんじゃない? 環境が正確にわかればサンプルを 書いてあげるよ。もしわからなければ、、、
- 529 名前:デフォルトの名無しさん (ワッチョイ 9fcf-RAPI) [2016/11/17(木) 08:43:40.73 ID:UCWuOxD40.net]
- c#でluaを使うためのパッケージは誰がよろしいでしょうか?
- 530 名前:デフォルトの名無しさん (スププ Sdb8-RUi6) mailto:sage [2016/11/17(木) 09:34:37.15 ID:Nr9kHWsUd.net]
- 背景の
- 531 名前:`画はXor Notの色じゃだめなぬ? []
- [ここ壊れてます]
- 532 名前:デフォルトの名無しさん (ワッチョイ 7c7b-8L7G) [2016/11/17(木) 11:04:15.91 ID:B+vLCAoF0.net]
- >背景の描画はXor Notの色じゃだめなぬ?
だめ。 psetなら隣の色を拾って背景代わりにするとできるが、、、lineだと背景の色を 覚えておかないとできないね。特に切り替わりのあるところ毎に背景を記憶して 覚えておかないとできないね。 BackColorXorline()なんて関数があって背景は別レイヤで記憶していてくれれば できるけど。そんなのがあるんだろうな。きっと。 グラフィックコントローラの機能として何枚かのレイヤがあるんだろうね。でないと 移動するごとに大量のベクトルの書き直しとか間抜けすぎるものね。 だからレイヤーを指定して書き込みできるんじゃなかろうか?
- 533 名前:デフォルトの名無しさん (オッペケ Sra9-2XGH) mailto:sage [2016/11/17(木) 13:02:06.96 ID:lS45HIXqr.net]
- LINQって使うとハマりそうなところって非同期だから返ってくる結果がよくからん順番になるところと可読性が悪いところ?
メリットは少なめなメモリで動くってだけかな? Rxとかは便利そうって思えるけど
- 534 名前:デフォルトの名無しさん (アウアウカー Sa41-2XGH) mailto:sage [2016/11/17(木) 13:11:56.85 ID:3nQkkv32a.net]
- LINQって非同期実行じゃなくて遅延評価じゃないの?
当然順番は変わらないし 更に言うとLINQの最大の利点て可読性の向上だと思ってたんだが…
- 535 名前:デフォルトの名無しさん (ワッチョイ 9f94-Ctj4) mailto:sage [2016/11/17(木) 13:34:27.15 ID:JueYqnTL0.net]
- 返ってくる順番が不確定なのはPLINQだね
(AsOrderd()を使えば順番を維持させることもできるけど) LINQで可読性が下がるというのは、もしかして、ラムダ式に慣れてないだけでは…
- 536 名前:デフォルトの名無しさん (ワッチョイ 7c7b-8L7G) [2016/11/17(木) 13:45:17.61 ID:B+vLCAoF0.net]
- >526
遅延って意味がおかしいんじゃない。クエリを書いただけでは実行しないってこと を遅延っていってるんだろうか? そんなの当たり前のように思えるが、、、
- 537 名前:デフォルトの名無しさん (ワッチョイ 40d9-k96Z) mailto:sage [2016/11/17(木) 14:11:29.10 ID:DsCEIrdz0.net]
- 「C#プログラム効率的な書き方」でも読めば?
この本は嫌というほど詳細にLINQが解説してあるから
- 538 名前:デフォルトの名無しさん (ワッチョイ 7c7b-8L7G) [2016/11/17(木) 14:40:02.46 ID:B+vLCAoF0.net]
- >529
そうだね。それ読んでみる。
- 539 名前:デフォルトの名無しさん (ワッチョイ 7c7b-8L7G) [2016/11/17(木) 14:40:19.41 ID:B+vLCAoF0.net]
- var dtm = new DateTime();
var user = new MembershipUser("?????", "1", "obj", "3","4", "5", true, true, dtm, dtm, dtm, dtm, dtm); MembershipUserをテストしようとしてるんだが"?????"は何をいれたらいいの? 無効なプロバイダーでエラーになる。
- 540 名前:デフォルトの名無しさん (ワッチョイ 7c7b-8L7G) [2016/11/17(木) 14:41:28.03 ID:B+vLCAoF0.net]
- 正確には
追加情報:指定されたメンバーシップ プロバイダー名が無効です。 こんなメッセージ
- 541 名前:デフォルトの名無しさん (ワッチョイ 774f-oPeX) mailto:sage [2016/11/17(木) 14:41:41.50 ID:sJEahq+u0.net]
- また川俣本か・・・
- 542 名前:デフォルトの名無しさん (JP 0H0d-2BAc) mailto:sage [2016/11/17(木) 14:41:59.02 ID:9sPAmX71H.net]
- 実行順序は直感と違うと思うな
副作用がなければ気にならんけど
- 543 名前:デフォルトの名無しさん (ワッチョイ 40d9-k96Z) mailto:sage [2016/11/17(木) 14:49:43.65 ID:DsCEIrdz0.net]
- >>533
まあね この人はちょっとパラノイアじみるほどマニアックなところがあるけど、 全部読破すれば間違いなくLINQ to Objectsの力が付くと思う 「こんな使い方普通しないだろw」みたいなのも書いてある
- 544 名前:デフォルトの名無しさん (ワッチョイ 9fcf-RAPI) [2016/11/17(木) 15:17:23.72 ID:UCWuOxD40.net]
- >>522です
開発環境はvisualstdioです nugetで公開されているneolua moonsharp等のluaの拡張パッケージになにか違いがあるのでしょうか?
- 545 名前:497 (ワッチョイ 7c03-EDxK) mailto:sage [2016/11/17(木) 17:31:32.94 ID:K3Fbeu8d0.net]
- >>497 です。
せっかくレスいただいたのですが↓が理解できませんでした。申し訳ありません。 > - TestItem(実験項目)にMeasured(測定値)のリストList<Measured>を持たせて、 > - TestItemのリストList<TestItem>を作る List<double> lsMeasTest = new List<double>(); でListを生成して lsMeasTest.Add(dblData); で測定値を格納していくのはわかります。 実験項目が増えたときにListを生成するのですが List<double> 変数名 = new List<double>(); を必要数分実行する方法がわからないのです。
- 546 名前:デフォルトの名無しさん (ワッチョイ 9f94-Ctj4) mailto:sage [2016/11/17(木) 17:59:43.84 ID:JueYqnTL0.net]
- 項目リストとしてList<List<double>>(List<double>を入れるList)を作っておく
測定値を入れたList<double>を作ったら、項目リストにAddしていく ではだめなの
- 547 名前:デフォルトの名無しさん (ワッチョイ 7c7b-8L7G) [2016/11/17(木) 18:09:46.70 ID:B+vLCAoF0.net]
- >573
これでどう? var dict = new Dictionary<string, double>(); dict.Add("test1", 32.5); dict.Add("test2", 3002.5); dict.Add("test3", 199932.5);
- 548 名前:デフォルトの名無しさん (ワッチョイ 7c7b-8L7G) [2016/11/17(木) 18:15:42.30 ID:B+vLCAoF0.net]
- var dict0 = new Dictionary<string, double>();
dict0.Add("test1", 32.5); dict0.Add("test2", 3002.5); dict0.Add("test3", 199932.5); var dict1 = new Dictionary<string, double>(); dict1.Add("btest1", 32.5); dict1.Add("btest2", 3002.5); dict1.Add("btest3", 199932.5); var Jkken = new Dictionary<string, Dictionary<string,double >>(); Jkken.Add("実験項目1", dict0); Jkken.Add("実験項目2", dict1); こうかな?
- 549 名前:デフォルトの名無しさん (アウアウオー Sa36-MfQN) mailto:sage [2016/11/17(木) 18:25:00.31 ID:hkg3+6Yaa.net]
- >>537
大サービスでサンプル書いてみた ideone.com/WjLe3C
- 550 名前:デフォルトの名無しさん (ワッチョイ 21bd-2Ppy) [2016/11/17(木) 18:51:38.13 ID:mx0eMjxm0.net]
- public private protected やstatic やプロパティって
どうしても必要なの? 実際に不正アクセスが起たりするもんなの? 何のために、何を防御しているのか理解できない。
- 551 名前:デフォルトの名無しさん (ワッチョイ b179-XpIe) mailto:sage [2016/11/17(木) 18:53:40.36 ID:VcCKxuk30.net]
- 不正アクセスの為にアクセス制限している訳じゃないし、不正アクセスの防止は出来ない
staticは別
- 552 名前:デフォルトの名無しさん (ワッチョイ 9cba-XpIe) mailto:sage [2016/11/17(木) 19:06:49.94 ID:uPELr+Dd0.net]
- 遂にGoogleさんも参加するって
https://mspoweruser.com/google-joins-net-foundation/
- 553 名前:デフォルトの名無しさん (JP 0H0d-2BAc) mailto:sage [2016/11/17(木) 19:49:50.72 ID:9sPAmX71H.net]
- クラウド方面か
- 554 名前:デフォルトの名無しさん (ワッチョイ b5dc-2XGH) mailto:sage [2016/11/17(木) 20:22:33.07 ID:iGNJFpBr0.net]
- >>542
余計な情報を外に漏らすと、それを今後もそうだと期待して依存する奴が出てくる で、お前が後で変えたら何で勝手に変えたんやワシのコードが動かへんようになったわシバクぞボケと言われることになる 日常生活でも「言ってしまったから今更変えづらい」ってあるだろ? 確かに約束できること以外には外に余計な情報を漏らさないようにすることで、 中身を弄っても何勝手に変えとんねんと言われない変更に強いプログラ厶になるんだよ
|

|