10進BASICでの画像回転

このQ&Aのポイント
  • 10進BASICを使用してファイルから読み込んだ画像を回転させる方法について質問です。
  • プログラムを実行すると、座標軸はきちんと30度回転して表示されますが、ファイル画像は回転せずに表示されてしまいます。
  • ファイル画像を回転表示するための方法を教えてください。
回答を見る
  • ベストアンサー

10進BASICでの画像回転

10進BASICで、ファイルから読み込んだ画像を回転させようと次のプログラムをつくったのですが、回転画像は表示されませんでした。 OPTION ANGLE DEGREES SET WINDOW -4,4,-4,4 DRAW sourceimage WITH ROTATE(30) PICTURE sourceimage GLOAD "C:\image.bmp" END PICTURE END かわりに座標軸だときちんと30度回転されて表示されるのですが・・・ OPTION ANGLE DEGREES SET WINDOW -4,4,-4,4 DRAW axes WITH ROTATE(30) END どうしたらファイル画像を回転表示できるのでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • jjon-com
  • ベストアンサー率61% (1599/2592)
回答No.1

(仮称)十進BASIC の経験は全くありません。Google検索してみただけです。 Full BASICと十進BASICの Q&A http://hp.vector.co.jp/authors/VA008683/QA.html の「グラフィックス」の章の次の3ページを参照。   ・基本の射影変換   ・複素数で定義される変換   ・歪絵(アナモルフォーズ)の描き方

msndance
質問者

お礼

解決しました。とても助かりました!

関連するQ&A

  • 十進BASICのグラフィック表示についてなのですが・・・

    グラフィック画面にy=sqr(1-x^2)のグラフとy=-sqr(1-x^2)のグラフを描くプログラムを作りなさい。ただし、 set window -1.5,1.5,-1.5,1.5 としなさい という問題で 私が書いたプログラムは SET WINDOW -1.5,1.5,-1.5,1.5 DRAW axes DEF f(x)=SQR(1-x^2) DEF g(x)=-SQR(1-x^2) LET h=0.01 SET LINE COLOR 9 FOR x=-1 TO 1 STEP h PLOT LINES:x,f(x);x+h,f(x) NEXT x SET LINE COLOR 10 FOR x=-1 TO 1 STEP h PLOT LINES:x,g(x);x+h,g(x+h) NEXT x END なのですが、 DEF g(x)=-SQR(1-x^2) のところでエラーが出ます。 どうすれば、改善されるか思いつかないで教えてください。 よろしくおねがいします。

  • コントロールの挿入と同時に画像を表示する方法

    アクティブエックスコントロールのイメージコントロールの設置と同時に、 画像をそのコントロールに表示するvbaを作ってるのですが、 実行時エラー438が発生します。 Sub test() Dim objOLE As OLEObject Set objOLE = ActiveSheet.OLEObjects.Add("Forms.Image.1") With objOLE .Name = "Image" .Picture = LoadPicture("C:\1.gif") End With End Sub C:\1.gifのパスをブラウザで表示させることはできるので、ファイルは存在しているし、 パスは間違っていません。 .Picture = LoadPicture("C:\1.gif") をコメントアウトすれば正常にコントロールが挿入されます。 コントロールの挿入と同時に画像を表示する方法を教えてください。 ご回答よろしくお願いします。

  • 画像を回転させると壊れる?

    WINDOWS-XPホームエディションのエクスプローラでスマートメディア内の画像を見ていました。 画像を右に回転させて見ていて、エクスプローラは一回終了。 その後、エクスプローラをもう一回起動させ、回転させた画像を見ようと思ったら、「描画できません」と表示。 とりあえず、PCを再起動させて、スマートメディアがささっているFドライブへアクセスしたら、「フォーマットしますか」の表示。 これって、ファイル自体が壊れたんですよね・・・? 以前噂で聞いたことがあるんですけど、XPのエクスプローラで画像を回転させると、壊れるって。 どなたか画像を修復する方法を教えて下さい。 よろしくお願いします。

  • 画像回転メニュー

    画像回転についてです. 先日,PCを初期化しました. 画像回転についてですか,ファイル内の画像を縮小表示にさせ,右クリックのメーニューから画像の回転をしていましたが,初期化してからは,左回転のみしかありません. 初期化前は,右回転と左回転の両方ありました. どこかで設定できるのしょうか?

  • picasaの画像回転保存/SONYのPMBと比較

    picasaで画像の回転をするとピクチャに反映されていません。 ファイル→保存でいつも保存しています。 ピクチャで画像を開くと勝手にpicasaが起動するものなのでしょうか? ピクチャで回転保存した時のように一発でできる方法はないのでしょうか? それと、picasaとSONYのPMBは比較するとどちらがいいのか… 編集といっても回転保存しかどちらも使用したことがなく初心者なので違いがまだよくわかりません。 個人的な意見で構いません是非参考に教えてください。

  • 画像に名前を付けたい・変更したい

    パワポ2003です。 新規でプレゼンテーションを立ち上げて 外部から持ってきた画像をスライド上に張り付けて マクロの記録を押して、外部画像を動かすと Sub Macro1() ActiveWindow.Selection.Unselect ActiveWindow.Selection.SlideRange.Shapes("Picture 4").Select With ActiveWindow.Selection.ShapeRange .IncrementLeft 22.5 .IncrementTop -372# End With End Sub と記録されたのですが、「Picture 4」の部分を変更することはできますか?

  • 画像回転アニメ

    Pythonで読み込んだ画像を360度回転するgifアニメにしたく見よう見まねで下記コードを書きました。 走り出してしばらくすると” list index out of range”などのエラーが出ます。どうしたらエラーをなくせるでしょうか?ご教示のほどよろしくお願いします。なお、Colaboratoryを使用しています。 import numpy as np import matplotlib.pyplot as plt import matplotlib.animation as animation from matplotlib.animation import PillowWriter from PIL import Image fig = plt.figure(figsize=(8,6),dpi=100) fig,ax=plt.subplots(1,1) ax.set_aspect('equal') rotor=Image.open('/rotor.png') ims = [] for i in range(360): im=rotor.rotate(angle=i,resample=Image.BICUBIC,expand=False) ims.append(im) anim = animation.ArtistAnimation(fig,ims) anim.save('ani.gif',writer="pillow",fps=10)

  • エクセル マクロ 画像についての質問です。

    エクセル マクロについての質問です。 下記のコードでセルに画像を合わせて貼り付け、表を作成しています。 が、このコードだと画像の保存先を移動させると画像が表示されなくなり、分類でフィルターをかけるとバラバラの違う画像が表示されてしまったりして困っています・・・。 どなたか良いご意見を頂ければと思い、投稿しました。よろしくお願いします! Sub PictFit() Dim PicFile As String Dim Pic As Picture PicFile = Application.GetOpenFilename() '画像のパスを取得 If PicFile = "False" Then Exit Sub Set Pic = ActiveSheet.Pictures.Insert(PicFile) '画像を貼り付ける With Pic .Height = ActiveCell.MergeArea.Height '画像の高さ .Top = ActiveCell.Top '画像の上位置を変更 .Left = ActiveCell.Left + (ActiveCell.MergeArea.Width - .Width) / 2 '画像の横位置を変更(セル幅中央に画像中央) End With End Sub

  • エクセル 工事写真 回転して挿入

    エクセルで工事写真台帳を作っています。 いろいろ検索して指定したセル内に画像を挿入できるようになりましたが、左へ90度回転させて挿入したいのです。 よろしくお願いします。 Sub 複数の画像を挿入() Dim strFilter As String Dim Filenames As Variant Dim PIC As Picture ' 「ファイルを開く」ダイアログでファイル名を取得 strFilter = "画像ファイル(*.jpg;*.jpeg;*.gif;*.bmp;*.png),*.jpg;*.jpeg;*.gif;*.bmp;*.png" Filenames = Application.GetOpenFilename( _ FileFilter:=strFilter, _ Title:="図の挿入(複数選択可)", _ MultiSelect:=True) If Not IsArray(Filenames) Then Exit Sub ' ファイル名をソート Call BubbleSort_Str(Filenames, True, vbTextCompare) ' 貼り付け開始セルを選択 'ActicveCellRange("C5").Select ' マクロ実行中の画面描写を停止 Application.ScreenUpdating = False ' 順番に画像を挿入 For i = LBound(Filenames) To UBound(Filenames) Set PIC = ActiveSheet.Pictures.Insert(Filenames(i)) '------------------------------------------------------------- ' 画像の各種プロパティ変更 '------------------------------------------------------------- With PIC .Top = ActiveCell.Top ' 位置:アクティブセルの上側に重ねる .Left = ActiveCell.Left ' 位置:アクティブセルの左側に重ねる .Placement = xlMove ' 移動するがサイズ変更しない .PrintObject = True ' 印刷する End With With PIC.ShapeRange .LockAspectRatio = msoTrue ' 縦横比維持 ' 画像の高さをアクティブセルにあわせる ' 結合セルの場合でも対応 .Height = ActiveCell.MergeArea.Height End With ' 次の貼り付け先を選択(アクティブセルにする) Select Case i Mod 2 Case 1 '奇数回目 ActiveCell.Offset(, 2).Select Case 0 '偶数回目 ActiveCell.Offset(5, -2).Select End Select Set PIC = Nothing Next i ' 終了 Application.ScreenUpdating = True MsgBox i - 1 & "枚の画像を挿入しました", vbInformation End Sub

  • 十進BASICでの衝突プログラミング

    十進ベーシック超初心者です。二次元の箱の中に円を置き、そこで衝突を繰り返すプログラムをつくりたいのですが行き詰っています。 箱の中だけでの衝突は、以下のようにプログラムできたのですが、円にぶつかるときどのようにプログラムをくんで跳ね返させればいいかわかりません。どなたか教えて下さい。 SET WINDOW -20,20,-20,20 DRAW GRID(2,2) PLOT LINES: -10,-10 ;10,-10;10,10;-10,10;-10,-10 DRAW CIRCLE WITH SCALE (2) LET X=-10 LET Y=-10 LET T=0 LET V=4.53574748 LET A=56.654968 LET VX=COS(A) LET VY=SIN(A) 100 PLOT LINES:X,Y ; IF VX>0 THEN LET LX=20-(10+X) END IF IF VX<0 THEN LET LX=20-(10-X) END IF IF VY>0 THEN LET LY=20-(10+Y) END IF IF VY<0 THEN LET LY=20-(10-Y) END IF LET T=MIN(LX/ABS(VX),LY/ABS(VY)) LET X=VX*T+X LET Y=VY*T+Y IF T=LX/ABS(VX) THEN LET VX=-VX END IF IF T=LY/ABS(VY) THEN LET VY=-VY END IF GOTO 100 END

専門家に質問してみよう