hashioogi の回答履歴
- 見かけの角度の変化から平面の回転を求めるには?
X,Y,Z軸がそれぞれ直行している3次元空間で、XY平面を底面、Z軸を高さとし、 視点(0,0,z)から原点を見下ろしているとします。 そこで、XY平面に原点(0,0,0)を中心とする四隅が直角な四角形(正方形または長方形)を配置し、 その四角形をX,Y,Z軸について回転させたとき、 視点から見える四角形の四隅の見かけの角が90度ではなくなると思います。 この見かけの四角形(辺の長さや四隅の角度)から、元の四角形がX,Y,Z軸にそれぞれ何度傾いているかを求めたいのですが、可能でしょうか? 透視投影やアフィン変換などを調べていましたが、いまいちよくわかりませんでした。 参考になるサイトや、解き方などを教えて下さい。
- 数直線上の数値を6等分
0 < a < b があって、 aとbの間を6等分します。 すると5つ点ができます。原点からその5つの点までのそれぞれの長さを求めなさい。 という問題です。 (b-a)×N /6 (N=0,1・・・)で求まるような気がするのですが、違うみたいです。 教えて下さい。
- ベストアンサー
- 数学・算数
- shitumon631
- 回答数2
- 画像のサイズについて
PNGやBMP画像などで容量が知りたい場合、 プロパティを開けばわかりますが、 計算で算出する方法はございますか? 画素数*色数で分かると聞きましたが、 その方法でも、結果が食い違ってきます。
- 締切済み
- その他(プログラミング・開発)
- criminal1006
- 回答数2
- Unicode文字の簡単な例が欲しいです
※Unicodeとかutf16とか厳密な意味での表記はよく分からないので "Windwosで使用していて、SJISとSJIS以外を判別したい"とでも 解釈して戴ければと… SJIS以外を判別して制御する簡単なスクリプトを作りたいです。 動作テスト用に(SJISに対応文字が無い)Unicode文字の簡単な 文字が欲しいのですが何か適当なのは無いでしょうか? ・入力しやすい ・目視でSJIS以外とわかりやすい こんな感じが希望なのですが… あとできれば"~"のように、SJISとUnicodeで、別の似た文字に 対応されている為に問題を起こしやすい文字の例も教えて戴けると ありがたいです。 よろしくお願いします。
- ベストアンサー
- その他(プログラミング・開発)
- momono14
- 回答数1
- C#でAES暗号
FreeBSDのコマンドとC#で暗号化した結果が異なります。 何が原因なのでしょうか。 コマンド: echo -n '1' | openssl enc -e -aes-128-cbc -K 1111111111111111 -iv 1111111111111111 -base64 結果>jrSCkCNzo9d4sXlRt5lQ/A== C#: http://programmers.high-way.info/cs/aes.html ここのをキーとIVを変更してます 結果>2OnHWXi3UZDpjnZ6Pex4PQ== 以上です。 宜しくお願いします。
- ベストアンサー
- その他(プログラミング・開発)
- noname#232280
- 回答数2
- C言語 unsigned 表示
#include<stdio.h> int count_bits(unsigned x){ int count=0; while(x){ if(x&1U){ count++; } x>>=1; } return count; } int int_bits(void){ return(count_bits(~0U)); } unsigned rrotate(unsigned x1 ,int n){ int bits=int_bits(); n%=bits; return(n? (x1>>n)|(x1<<(bits-n)):x1); } int main (void){ unsigned nx,b; b=rrotate(nx,2); printf("%u\n",b); return(0); } 3221225476や1073741829と表示されることがあります。 入力値を4で割った数を表示するには、どうしたらよいでしょう・ 御指摘お願いします。
- ベストアンサー
- 情報工学
- situmonn9876
- 回答数2
- C言語 クイックソートについて
クイックソートでわからない点があるため、 質問させていただきます。 ----------------------------------------------------- ~省略~ data = [5, 3, 4, 2, 6, 1]; no = 6; //データの個数 ~省略~ dqsort(data, 0, no-1); ~省略~ void dqsort(double data[], int lower, int upper) { int i, boundary; //boundaryは配列の前半と後半の境界を示す if(lower >= upper) { return; } //基準値となる値(データの中央に位置する値)とデータの先頭の値を入れ替える swapdata(&data[lower], &data[(lower + upper)/2]); boundary = lower; //boundaryを先頭に移動させる for(i=lower+1; i<=upper; i++) { if(data[i] < data[lower]) { //配列の前半部分に移動し、境界を移動する swapdata(&data[++boundary], &data[i]); } } //最後に基準値を境界位置にコピー swapdata(&data[lower], &data[boundary]); //配列の前半部分をクイックソート dqsort(data, lower, boundary-1); //配列の後半部分をクイックソート dqsort(data, boundary+1, upper); } void swapdata(double *i, double *j) { int temp; temp = *i; *i = *j; *j = temp; } --------------------------------------------------------- 基準値と配列の先頭のデータを入れ替えた後、 データは、[4, 3, 5, 2, 6, 1]となり、lower = 0であるため、 data[boundary]はdata[0]となります。 for文の最初のループでdata[0]<data[1]なら、 swapdata(&data[++boundary], &data[i]); となっているのですが、 [++boundary]の部分はboundary=0に1を足してから処理するため、 swapdata(&data[1], &data[1]); となると思うのですが、そうすると同じデータを入れ替えることになってしまいます。 何が間違っているのか、教えていただけますでしょうか。
- dll作成
Visual studio2012利用し、 Win32プロジェクト から DLLを選んで、テンプレートに、関数を記入。ヘッダファイルを追加し、そこに関数の宣言を書いた。 ビルドすると、Debugフォルダに.dllは作成され、exeファイルが作成されない。 デバックなしで開始するとdllは開始できません。とメッセージがでます。 作成されたdllファイルの開始の仕方を、教えてください。
- 締切済み
- 情報工学
- situmonn9876
- 回答数1
- C++ファイルからデータ入力して計算、ファイル出力
C++初心者です。 ファイルの数値データを入力して、それらを計算してからファイルに出力する方法がわかりません。 たとえば、 入力ファイル 出力ファイル 行数 x y z (1) 1 1 6 y(1)*exp(z(1)-x(1))+y(2)*exp(z(2)-x(1))+... (2) 3 5 2 y(1)*exp(z(1)-x(2))+y(2)*exp(z(2)-x(2))+... (3) 5 6 9 y(1)*exp(z(1)-x(3))+y(2)*exp(z(2)-x(3))+... (4) 9 1 3 y(1)*exp(z(1)-x(4))+y(2)*exp(z(2)-x(4))+… (5) 1 7 8 y(1)*exp(z(1)-x(5))+y(2)*exp(z(2)-x(5))+... 入力したデータを上記のように計算してから出力ファイルにしたいのですが、複雑なのでプログラムをどう組み立てれば良いのかわかりません。 ちょっとしたことでも結構です、参考になりそうなサイトや、ロジック、プログラムに関するアドバイスいただけませんか。
- 締切済み
- C・C++・C#
- ryoryoryory
- 回答数1
- 面積計算のC言語のプログラムについてです。
課題として以下の問いがでているのですが、わかりません。プログラムできる方教えてください。 「y=cos(x) : -π/2 < x < π/2 , pi=3.14159 の分布に従う乱数を生成し、その面積を計算せよ。」
- 締切済み
- C・C++・C#
- hacchi-oshi
- 回答数2
- 単精度浮動小数点方式、16進数
10進数で22.75で表される値を単精度浮動小数点方式で表現し,それを16進数に変換するとどうなりますか? 22.75(10)→1.421875 4+127=131=10000011(2) 0.421875=0.011011(2) ここからのやり方教えてください
- 円弧の座標から半径を求める式
10個のy座標、10個のx座標からなる10ピクセルの円弧があります。 この円弧の半径を求める式(添付画像のとおりです)は以下の内容でよろしいでしょうか。 始点(ひとつめのy座標とx座標)とふたつめのy座標とx座標の微分係数が (始点とみっつめの座標、始点とよっつめの座標、、、始点と10個目の座標、 という風に比べて(微分して)いく) 連続的なカーブの閾値以上(π/130)のものを合算し、 要素数(この場合は10)で割る。 こういう意味かな・・・と思っていますが、正しい理解なのかいまいち自信がありません。 座標を配列で比較する限り、答えも2次元配列の値になるので 閾値(π/130)が成り立たないですし、 もしy座標同士だけ、x座標同士だけ、で比べると値が2つ出て 長さで表される「半径」ではないなぁ、と思い困っています。 もしおわかりになりましたら教えてください。 よろしくお願い致します。
- ベストアンサー
- C・C++・C#
- rosafilipes
- 回答数3
- 円弧の座標から半径を求める式
10個のy座標、10個のx座標からなる10ピクセルの円弧があります。 この円弧の半径を求める式(添付画像のとおりです)は以下の内容でよろしいでしょうか。 始点(ひとつめのy座標とx座標)とふたつめのy座標とx座標の微分係数が (始点とみっつめの座標、始点とよっつめの座標、、、始点と10個目の座標、 という風に比べて(微分して)いく) 連続的なカーブの閾値以上(π/130)のものを合算し、 要素数(この場合は10)で割る。 こういう意味かな・・・と思っていますが、正しい理解なのかいまいち自信がありません。 座標を配列で比較する限り、答えも2次元配列の値になるので 閾値(π/130)が成り立たないですし、 もしy座標同士だけ、x座標同士だけ、で比べると値が2つ出て 長さで表される「半径」ではないなぁ、と思い困っています。 もしおわかりになりましたら教えてください。 よろしくお願い致します。
- ベストアンサー
- C・C++・C#
- rosafilipes
- 回答数3
- 円弧の座標から半径を求める式
10個のy座標、10個のx座標からなる10ピクセルの円弧があります。 この円弧の半径を求める式(添付画像のとおりです)は以下の内容でよろしいでしょうか。 始点(ひとつめのy座標とx座標)とふたつめのy座標とx座標の微分係数が (始点とみっつめの座標、始点とよっつめの座標、、、始点と10個目の座標、 という風に比べて(微分して)いく) 連続的なカーブの閾値以上(π/130)のものを合算し、 要素数(この場合は10)で割る。 こういう意味かな・・・と思っていますが、正しい理解なのかいまいち自信がありません。 座標を配列で比較する限り、答えも2次元配列の値になるので 閾値(π/130)が成り立たないですし、 もしy座標同士だけ、x座標同士だけ、で比べると値が2つ出て 長さで表される「半径」ではないなぁ、と思い困っています。 もしおわかりになりましたら教えてください。 よろしくお願い致します。
- ベストアンサー
- C・C++・C#
- rosafilipes
- 回答数3
- プログラミングC言語
プログラミングC言語の問題で、 「ベクトルの内積を用いて、2つのベクトルの成す角度を求めるプログラムを作成せよ。」 という問題をやっていて、以下の画像のような答えになるのですが、上手くいきません。 どのようにすればいいのでしょうか? 作ったソースコード #include<stdio.h> #include<math.h> double naiseki(int *vecterA, int *vecterB) { double rad, deg; rad = acos( (vecterA[0]*vecterB[0] + vecterA[1]*vecterB[1]) / ( sqrt((double)(vecterA[0]*vecterA[0] + vecterA[1]*vecterA[1])) * sqrt((double)(vecterB[0]*vecterB[0] + vecterB[1]*vecterB[1])) ) ); deg = rad/3.141592*180; return deg; } int main(void) { double va[2]; double vb[2]; printf("v1_x:"); scanf("%lf", &va[0]); printf("v1_y:"); scanf("%lf", &va[1]); printf("v2_x:"); scanf("%lf", &vb[0]); printf("v2_y:"); scanf("%lf", &vb[1]); puts("内積から求めたベクトルの角度は"); printf("%f",naiseki(va,vb)); puts("です。"); return(0); } 最後のnaiseki(va,vb)のところで互換性がありませんと でてしまいます。 double naiseki のソースコードはこのままでプログラムが 動くようにしてほしいです。 よろしくお願いします!
- C言語 ファイルの意味
C言語 文字列で分からない部分があるのでご教示お願いします。 内容は「文字列の検索」です。 #include<stdio.h> #include<string.h> int main(void) { char word[] = "abcabdabe"; char word2[] = "abd"; char *word3 = "ABD"; char *word4 = NULL; printf("処理前の文字列:%s\n", word); word4 = word; word4 = strchr(word4, *word2); while (word4 != NULL){ printf("'a'が見つかった場所からの文字列: %s<\n", word4); if (strncmp(word4, word2, strlen(word2)) == 0) { strncpy(word4, word3, strlen(word3)); } word4 += 1; word4 = strchr(word4, *word2); } printf("処理後のword4: %s\n", word); return 0; } このプログラムの場合、word3とword4ではなぜ、*word3, *word4とポインタで設定するのでしょうか? また、「word4 = strchr(word4, *word2)」と *word2のようにlここでポインタ指定するのは何故なのでしょうか?
- 中学数学の問題
中学数学の問題です。 △ABCの辺AB,BC,CA上にそれぞれ点D,E,FをAD:DB=BE:EC=CF:FA=1:2となるようにとる。このとき、△DEFの面積は△ABCの面積の何倍か。 答えは1/3倍なのですが解き方が分かりません。中学生で習っている範囲の解き方での詳しい解説をしていただきたいです。よろしくお願いします。
- ベストアンサー
- 数学・算数
- tina_pouty_ss
- 回答数2
- 行列式の起源
つい先ほど行列式の定義(Σ,sgnを使うもの)についてやっと理解したところなのですが、ああすればこういった行列式を定義すると他の計算がうまくいくなんてどうやってうまれてくるのでしょうか。 ただ各行各列から成分を1つずつ取り出し、それらの積に添字についてのsgnを行っただけで、例えば2次の場合、「あっ、こうすれば逆行列求める時に使えるad-bcになるじゃん。」といったような簡単な発想から生まれたのでしょうか。 それとも、行列のad-bcからこのような計算になるようなものはないかといきついた結果なのでしょうか。 それともどちらとも違うのか・・・。 定義の計算方法については理解できたのですが、実際にそれを使うとなるとなぜ適用できるのかまったく理解できません。 疑問に思うことをまとめると、 ・どのような発想から行列式の定義のあの式はうまれてきたのか ・2次は実際に逆行列を求める際にad-bcとなるので、行列式をそのまま使えるが、3次以上はなぜ適用できるか、そもそも具体例がわからない どなたかわかる方いましたら回答よろしくお願いします。