الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

Graph Plotter problems

بدأه أحمد عصام في 24 أبريل 2016 · 3 رد · 1,849 مشاهدة · في الرياضيات والخوارزميات
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم
انا شغال علي برنامج بيرسم دوال 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

تم تعديل هذه المشاركة بواسطة أحمد عصام في 24 أبريل 2016 في 00:59

#2

تم حل المشكلة

#3

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

#4

كتبتهولك بس بمكتبة 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

تم تعديل هذه المشاركة بواسطة أحمد عصام في 29 أبريل 2016 في 19:56

مواضيع مشابهة