質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.61%

  • Java

    13522questions

    Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

  • Processing

    245questions

    Processingは、オープンソースプロジェクトによるCGのためのプログラミング言語です。Javaをベースにしており、グラフィック機能に特化しています。イメージの生成やアニメーションなど、視覚的なフィードバックを簡単に得ることが可能です。

  • OpenGL

    156questions

    OpenGLは、プラットフォームから独立した、デスクトップやワークステーション、モバイルサービスで使用可能な映像処理用のAPIです。

Processing で以下のようなエラーが解消されません。

解決済

回答 1

投稿

  • 評価
  • クリップ 0
  • VIEW 269
退会済みユーザー

退会済みユーザー

前提・実現したいこと

Processing(3.3.6)で以下のエラーが出て困っています。どなたかお力添え頂けると幸いです。
下から4行目 " g3 = (PGraphicsOpenGL)g;" の箇所が黄色くマークされます。

ソースコードは、エラー文付近より上の行のみ掲載しています。

発生している問題・エラーメッセージ

ClassCastException: processing.core.PGraphicsJava2D cannot be cast to processing.opengl.PGraphicsOpenGL

該当のソースコード

import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Arrays;

import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.filechooser.FileFilter;
import javax.swing.filechooser.FileNameExtensionFilter;
import javax.vecmath.Point3f;
import javax.media.opengl.*;
import javax.swing.*;

import peasy.PeasyCam;

import controlP5.*;
import processing.opengl.*;


private boolean dualExtrusionColoring = false ;

PeasyCam cam; //The camera object, PeasyCam extends the default processing camera and enables user interaction
ControlP5 controlP5; //ControlP5 object, ControlP5 is a library used for drawing GUI items
PMatrix3D currCameraMatrix; //By having 2 camera matrix I'm able to switch a 3D pannable area and a fixed gui in relation to the user
PGraphicsOpenGL g3; //The graphics object, necessary for openGL manipulations
ControlGroup panButts; //The group of controlP5 buttons related to panning
private boolean is2D = false;
private boolean isDrawable = false; //True if a file is loaded; false if not
private boolean isPlatformed = false;
private boolean isSpeedColored = true;
private String gCode; //The path of the gcode File
private ArrayList<LineSegment> objCommands; //An ArrayList of linesegments composing the model
private int curScale = 20; 
private int curLayer = 0;


////////////ALPHA VALUES//////////////
private final int TRANSPARENT = 20;
private final int SOLID = 100;
private final int SUPERSOLID = 255;


////////////COLOR VALUES/////////////
private final int RED = color(255, 200, 200);
private final int BLUE = color(0, 255, 255);
private final int PURPLE = color(242, 0, 255);
private final int YELLOW = color(237, 255, 0);
private final int OTHER_YELLOW = color(234, 212, 7);
private final int GREEN = color(33, 255, 0);
private final int WHITE = color(255, 255, 255);


///////////SPEED VALUES///////////////
private float LOW_SPEED = 700;
private float MEDIUM_SPEED = 1400;
private float HIGH_SPEED = 1900;


//////////SLIDER VALUES/////////////
private int minSlider = 0;
private int maxSlider;
private int defaultValue;


/////////Canvas Size///////////////
private int xSize = 5*screen.width/6;
private int ySize = 5*screen.height/6;

////////////////////////////////////
private int camOffset = 70;
private int textBoxOffset = 200;

/*
        private static String argument =null;


 public static void main(String args[]) {
 PApplet.main(new String[] {"ProcessingGcodeViewer" });
 if(args.length >= 1)
 {
 argument = args[0];
 }
 }
 */

public void settings() {

  size(xSize, ySize, OPENGL); //OpenGL is the renderer; untested with p3d

}

public void setup() {

  //gCode = ("RectangularServoHorn2.gcode");
  //gCode = ("C:/Users/noah/Downloads/RoboArm/pig.gcode");
  //gCode = ("C:/Users/noah/Dropbox/Rep26Stuff/Example Files/Cupcake/Merged.gcode");

  frameRate(25);
  hint(ENABLE_NATIVE_FONTS); //I've found this hint prevents some weird ControlP5 font not in box issues.
  background(0); //Make background black

  g3 = (PGraphicsOpenGL)g;
  hint(DISABLE_OPENGL_2X_SMOOTH); //AntiAliasing really hurts performance and I've found it to be distracting when on
  noSmooth();

試したこと

補足情報(言語/FW/ツール等のバージョンなど)

環境は processing 3.3.6
こちらのプログラムを動かそうとした所、つまづきました。
https://www.thingiverse.com/thing:14980

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 1

checkベストアンサー

+2

gという変数が何か謎ですが、原因はキャスト違反です。
gという変数に入っているオブジェクトをPGraphicsOpenGLという型にキャストしようとしたが、
gに入っていたのがPGraphicsJava2Dという、PGraphicsOpenGLのサブクラスではない型のオブジェクトであったためのエラーです。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/10/16 10:22 編集

    swordone 様

    ご回答頂き、ありがとうございます!
    動かそうとしているプログラムが2011年のもので、processingのVer1とVer3とでは、レンダリング周りが変わっているとの指摘を他の方から受け、Ver1.5.1で動かしてみた所、”ClassCastException”のエラー文は出なくなりました。

    が、今度は

    (掲載しているコードには含まれていない、下層の方で)
    float bounds[] = gcvp.getExtremes();

    という箇所が黄色くマークされ、The function getExtremes() does not exist
    というerrorが出るようになりました。

    再度質問し直そうかと思います。
    ご協力本当にありがとうございました!

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 90.61%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

  • 解決済

    星を動かしたいです!

    書いた星を動かしたいです この中に組み込みたいと思っています( ;  ; ) 全然わからなくて困っているので助けてください! void setup(){ size(80

  • 受付中

    processingで特定の点の軌跡を残したい

    processing で、 円Aの周上を動径の回転に沿って移動する点を中心とする円Bを描き、 円Bの周上を動径の回転に沿って移動する点を中心とする円Cを描き、

  • 解決済

    java外部ライブラリを使ったポップアップのやり方(Processing)

    Processingについての質問です。 javaのAPIを用いて、例えば画面をクリックしたときに、ポップアップでウインドウが出て「クリックされました」というような表示がされ

  • 解決済

    Processingでキーを押すと描画と音が鳴るシステムで、描画が重なってしまうのを止めたい

    以下のコードでsetup()にdraw()内を移動してみると今度は動かなくなり、どうしたら良いか困っています。 import ddf.minim.*; import ddf.m

  • 受付中

    unexpected token : voidとエラーする解決法

    processingでこのようなコードを打ち込んだのですが、 エラーが出ます。 どこが悪いのか教えてください。 ちなみにエラーはunexpected token : voidとでま

  • 解決済

    円柱の曲面に文字や図形を表示したい。

    いつもお世話になっています。  前提・実現したいこと 表題通りです。 円柱の曲面に文字や図形を表示したいです。 テクスチャマッピングなるもので要件を満足する方法があるのです

  • 解決済

    表示に穴を開けるには。

     前提・実現したいこと 以下の図の赤丸のようにスケールバーの指定の場所をくり抜いて奥の表示を出現させるテクニック、あるいは目的の描写を周囲に被らせないように行うトリミングのテクニッ

  • 解決済

    弾幕ゲームの作成に関して

     processingでのゲーム作成 初めて投稿します。 最近processingを勉強し始め、ゲームを作るという課題が出て、私は弾幕シューティングゲームを作ろうと思い、作成してい

同じタグがついた質問を見る

  • Java

    13522questions

    Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

  • Processing

    245questions

    Processingは、オープンソースプロジェクトによるCGのためのプログラミング言語です。Javaをベースにしており、グラフィック機能に特化しています。イメージの生成やアニメーションなど、視覚的なフィードバックを簡単に得ることが可能です。

  • OpenGL

    156questions

    OpenGLは、プラットフォームから独立した、デスクトップやワークステーション、モバイルサービスで使用可能な映像処理用のAPIです。