Παιδιά καλημέρα,
Έχω το εξής πρόβλημα. Πρέπει να γράψω ένα πρόγραμμα σε java που να παίρνει ως input μια εξίσωση της μορφής α / (β^2) και να την τυπώνει κανονικά. δηλ α γραμμούα κλάσματος, β στην δευτέρα όπου το 2 να είναι και πιο μικρό font που το β.
Οι εξισώσεις μπορούν να γίνουν και πιο πολύπλοκες… Καμιά ιδέα ;
Χρησιμοποιώντας το LaTeX μπορείς να δημιουργήσεις πρώτα την εικόνα της εξίσωσης κι έπειτα να την προβάλεις εκεί και όπου θέλεις. Το 'χα κάνει παλιότερα για το phigita.net αλλά δεν διατέθηκε τελικά (δεν ήταν εύκολο να αποτραπεί κατάχρηση της λειτουργίας με εμβολιασμό κώδικα-εντολές συστήματος μέσα στην εξίσωση). Συνοπτικά, μπορεί να γίνει ως εξής:
1. Δημιουργείς ένα αρχείο που περιέχει τα ακόλουθα:
\documentclass[amsart]{article} \pagestyle{empty} \begin{document} ... your equation ... \end{document}2. latex το αρχείο (από το βήμα 1) σε nonstopmode
3. dvipng το αρχείο που προκύπτει από το βήμα 2 (με επέκταση dvi) με τις κατάλληλες παραμέτρους (π.χ. το χρώμα του φόντου)
4. Προβολή ή επεξεργασία της png εικόνας που προκύπτει από το βήμα 3.
Εναλλακτικά, ρίξε μια ματιά στο WebEQ. Χρησιμοποιεί java applets για την εξίσωση (δεν γνωρίζω τις λεπτομέρειες). Σε java, ενδεχομένως να υπάρχει και βιβλιοθήκη που παράγει την εικόνα απευθείας.
-- Νεόφυτος Δημητρίου ~k2pts, January 09, 2008
Αν το ερώτημα είναι ακριβώς πως να υλοποιήσεις ένα πρόγραμμα που να κάνει την πιο πάνω δουλειά, χωρίς χρήση κάποιας έτοιμης βιβλιοθήκης, τότε ίσως μια αρχή να είναι η συνειδητοποίηση ότι μια εξίσωση μπορεί να μοντελοποιηθεί αναδρομικά, ως συνδυασμός πολλών μικρότερων εξισώσεων. Θα προσπαθούσα να σκεφτώ με ποιούς τρόπους μπορώ να "κολλήσω" πολλές, μικρές εξισώσεις μαζί για να δημιουργήσω μεγαλύτερες. Π.χ. ένας τρόπος είναι μέσω κλασματικής αναπάραστασης e1/e2, όπου e1 και e2 δύο άλλες εξισώσεις. Άλλος τρόπος είναι μέσω δυνάμεων, όπως στο e1^e2 κ.ο.κ. Άλλος τρόπος είναι μέσω αγκύλων, όπως [e]. Για κάθε τρόπο συνδυασμού, θα πρέπει να σκεφτείς πώς μπορεί αυτός ο συνδυασμός να αναπαρασταθεί γραφικά, και τι πληροφορία χρειάζεται να κρατείς για τις "υπο-εξισώσεις" ώστε να μπορέσεις να δημιουργήσεις την γραφική αναπαράσταση. Ας πούμε για την διαίρεση, ίσως να χρειάζεται να γνωρίζεις το μήκος των υπο-εξισώσεων, ώστε να ξέρεις πόσο μεγαλή κλασματική γραμμή να σχεδιάσεις. Για τις αγκύλες, θα πρέπει να γνωρίζεις το ύψος της υποεξίσωσης, για να μπορέσεις να σχεδιάζεις κατάλληλα μεγάλα σύμβολα αγκύλων.
Ελπίζω να βοήθησα.
-- Χρίστος Ευαγγέλου ~christose, January 11, 2008
Χρίστο,
Ευχαριστώ για την βοήθεια, αλλά κατάλαβα πως τούτο το πράγμα είναι πιο δύσκολο από ότι ακούγεται. Τα καλά νέα είναι πως βρήκα ένα έτοιμο applet που του δίνεις το equation και σου το τυπώνει. Ονομάζεται HotEqn. Θα το χρησιμοποιήσω σίγουρα εκείνο, και θα τροποποιώ το input του χρήστη και να το κάνω στο input του HotEqn.
-- Ανδρέας Φλωρίδης ~flo, January 11, 2008
Νεόφυτε,
Ευχαριστώ για την απάντηση. Νομίζω τούτο το applet κάνει χρήση των όσων μου είπες.
-- Ανδρέας Φλωρίδης ~flo, January 11, 2008