سؤال

السلام عليكم
انا شغال علي برنامج بيرسم دوال graph plotter
المشاكل بقي موجودة لما تظهر المالانهايات :D
http://i.imgur.com/990MnPi.png
فكرة البرنامج بسيطة جدا .... بعوض في الدالة بقيم x عشان اجيب نقط اوصلهم ببعض بكثافة معينة ( في الحالة ديه بجيب نقطة لكل بيكسل علي محور x )
لو فيه نقطة من النقط ديه صدفة كانت القيمة المقابلة ليها ما لا نهاية الموضوع سهل وبتعامل مع الحالة :D
http://i.imgur.com/LXYMbyv.png
المشكلة طبعا انه مع دوال زي tan احتمال شبه معدوم انه نقطة من النقط اللي بختارها هيا اللي تكون عندها ال discontinuity فبيحصل اللي في الصورة الأولي
سؤالي هنا .... حد عنده فكرة لحل ؟
انا فكرت انه لما يكون فيه الشكل اللي في الصورة اللي تحت يبقي ديه ما لانهاية والنتيجة كانت كويس للحالات ديه بس محلتش كل الحالات وبوظت حالات تانية
http://i.imgur.com/yityhEF.png
اسف لو مكان البوست غلط

g.png

تم تعديل بواسطه أحمد عصام
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

3 إجابة على هذا السؤال .

  • 0

تم حل المشكلة

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

مرحبا بدي مساعدة من احد بستطيع يكتبلي برنامج بلغة جافا لرسم شكل حلزوني

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

كتبتهولك بس بمكتبة JavaFX عشان هيا اللي بعرف اتعامل معاها :D
جرب غير في الثوابت وشوف بيشتغل ازاي

package application;

import javafx.application.Application;
import javafx.stage.Stage;
import javafx.scene.Node;
import javafx.scene.Scene;
import javafx.scene.layout.BorderPane;
import javafx.scene.layout.Pane;
import javafx.scene.shape.Polyline;

public class Main extends Application {

    private final double WIDTH = 700;
    private final double HEIGHT = 700;
    private final double RADIUS = 300;
    private final double STEP = 0.01;
    private final double RADIUS_DROP_CONSTANT = 9;
    private final double MAX_THETA = Math.PI*10;

    @Override
	public void start(Stage primaryStage) {
		try {
			Pane root = new Pane();
			Scene scene = new Scene(root,WIDTH,HEIGHT);
			root.getChildren().add(getSpiral());
			primaryStage.setScene(scene);
			primaryStage.show();
		} catch(Exception e) {
			e.printStackTrace();
		}
	}

    private Polyline getSpiral() {
        Polyline spiral = new Polyline();
        double centerX = WIDTH / 2;
        double centerY = HEIGHT / 2;

        for (double theta = 0; theta < MAX_THETA; theta += STEP) {
            double r = calculateRadius(theta);
            spiral.getPoints().addAll(centerX + r * Math.cos(theta), centerY + r * Math.sin(theta));
        }
        return spiral;
    }

    private double calculateRadius(double theta) {
        return RADIUS - theta * RADIUS_DROP_CONSTANT;
    }

    public static void main(String[] args) {
        launch(args);
    }
}

 

spira.png

تم تعديل بواسطه أحمد عصام
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

من فضلك سجل دخول لتتمكن من التعليق

ستتمكن من اضافه تعليقات بعد التسجيل



سجل دخولك الان

  • يستعرض القسم حالياً   0 members

    لا يوجد أعضاء مسجلين يشاهدون هذه الصفحة .