كيفية مؤامرة كبيرة ناقلات البيانات بدقة على جميع مستويات التكبير في الوقت الحقيقي ؟

StackOverflow https://stackoverflow.com/questions/508666

سؤال

لدي مجموعات كبيرة من البيانات (10 هرتز البيانات ، لذلك 864k نقاط لكل 24 ساعة) التي تحتاج إلى مؤامرة في الوقت الحقيقي.الفكرة يمكن للمستخدم التكبير وعموم الى مفصلة للغاية مبعثر المؤامرات.

البيانات ليست مستمرة وهناك المسامير.منذ مجموعة بيانات كبيرة جدا, لا أستطيع مؤامرة كل نقطة في كل مرة المؤامرة بالتحديث.

ولكن أنا أيضا لا يمكن أن مجرد مؤامرة بكل أقصى نقطة أو آخر سوف يغيب الميزات الرئيسية مثل كبيرة ولكن قصيرة المسامير.

Matlab يفعل ذلك الحق.يمكنك إعطائها 864k ناقلات كامل من الأصفار فقط تعيين أي نقطة إلى 1 وسوف المؤامرة بشكل صحيح في الوقت الحقيقي مع بتكبير والمقالي.

كيف Matlab تفعل ذلك ؟

هدفي هو نظام جافا, لذلك أود أن يكون توليد وجهات النظر من هذه المؤامرة في البديل/Java2D.

هل كانت مفيدة؟

المحلول

يجب أن تحاول الملف من MATLAB المركزية:

https://mathworks.com/matlabcentral/fileexchange/15850-dsplot-downsampled-plot

من المؤلف:

هذا الإصدار من "مؤامرة" سوف تسمح لك تصور البيانات التي لديها عدد كبير جدا من العناصر.بالتآمر مجموعة كبيرة من البيانات يجعل الرسومات الخاصة بك بطيئا ، ولكن في معظم الأحيان لا تحتاج جميع المعلومات المعروضة في هذه المؤامرة.الشاشة فقط لديها الكثير من بكسل ، و أن عينيك لن تكون قادرة على الكشف عن أي معلومات لم يتم التقاطها على الشاشة.

هذه الوظيفة سوف باختزال البيانات مؤامرة فقط مجموعة فرعية من البيانات ، وبالتالي تحسين الذاكرة الشرط.عندما المؤامرة هو التكبير إلى المزيد من المعلومات يحصل على عرض.هو القيام ببعض العمل للتأكد من أن القيم المتطرفة يتم التقاطها.

بناء الجملة:

dsplot(x, y)  
dsplot(y)  
dsplot(x, y, numpoints)  

على سبيل المثال:

x =linspace(0, 2*pi, 1000000);  
y1=sin(x)+.02*cos(200*x)+0.001*sin(2000*x)+0.0001*cos(20000*x);  
dsplot(x,y1);

نصائح أخرى

وأنا لا أعرف كيف مطلب يفعل ذلك، ولكن كنت أبدأ مع Quadtrees .

وتفريغ جميع نقاط البيانات الخاصة بك في quadtree، ثم إلى تقديم عند مستوى تكبير معين، يمكنك السير quadtree (بدءا من المناطق التي تتداخل ما تقرأها) حتى تصل إلى المناطق التي يمكن مقارنتها مع حجم بكسل. عصا بكسل في منتصف هذا المجال.

وأضاف: ممارسة الرسم بتقنية OpenGL / JOGL سوف تساعد أيضا على الحصول على رسم أسرع. خاصة إذا كنت لا يمكن أن يتنبأ بالغسل، وبناء نقاط لإظهارها في قائمة عرض أو شيء ما، بحيث لم يكن لديك للقيام بأي عمل وحدة المعالجة المركزية للإطارات جديدة.

10Hz البيانات يعني أن لديك فقط قطعة 10 إطارات في الثانية الواحدة.وينبغي أن يكون من السهل ، حيث العديد من الألعاب يحقق >100 إطارا في الثانية مع المزيد من الرسومات المعقدة.

إذا كنت القطعة 10 بكسل في الثانية لكل من الممكن نقطة البيانات يمكنك عرض دقيقة يستحق البيانات باستخدام 600 بكسل واسعة القطعة.إذا قمت بحفظ مؤشر من 600 إلى نموذج آخر من ينبغي أن يكون من السهل رسم فقط أحدث البيانات.

إذا لم يكن لديك جديد نقطة البيانات كل 10 ثانية عليك أن تأتي مع طريقة لإدراج محرف نقطة البيانات.ثلاثة خيارات تتبادر إلى الذهن:

  1. تكرار آخر نقطة البيانات.
  2. إدراج "فارغة" نقطة البيانات.وهذا سوف يسبب فجوات في الرسم البياني.
  3. لا تحديث الرسم البياني حتى على البيانات التالية-نقطة وصول.ثم إدراج كل بكسل لم التعادل في مرة واحدة ، مع الخطية بين نقاط البيانات.

لجعل الرسوم المتحركة على نحو سلس الاستخدام التخزين المؤقت المزدوج.إذا الهدف الخاص بك يدعم اللغة قماش القطعة ربما يدعم التخزين المؤقت المزدوج.

عند التكبير لديك نفس الخيارات الثلاثة المذكورة أعلاه ، كما التكبير البيانات النقاط ليست مستمرة حتى لو الأصلي البيانات النقاط.

هذا قد تساعد على تنفيذ ذلك في جافا.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top