bool HeeksCADapp::InputInt(const wxChar* prompt, const wxChar* value_name, int &value) { double dvalue; if(!InputDouble(prompt, value_name, dvalue))return false; value = (int)(dvalue + 0.5); return true; }
bool InputDoubleN(const char* label, double* v, int components, const char* display_format, ImGuiInputTextFlags extra_flags) { ImGuiWindow* window = GetCurrentWindow(); if (window->SkipItems) return false; ImGuiContext& g = *GImGui; bool value_changed = false; BeginGroup(); PushID(label); PushMultiItemsWidths(components); for (int i = 0; i < components; i++) { PushID(i); value_changed |= InputDouble("##v", &v[i], 0.0, 0.0, display_format, extra_flags); SameLine(0, g.Style.ItemInnerSpacing.x); PopID(); PopItemWidth(); } PopID(); TextUnformatted(label, FindRenderedTextEnd(label)); EndGroup(); return value_changed; }
void ChangeParam(tParam *p, tComplex *c){ int flag = 1; printf("Welchen Parameter moechtest du aendern?\n"); printf("(1) - Radius\n(2) - Maximale Iterationszahl\n(3) - Fraktaltyp\n(4) - Analysegebiet\n"); printf("(5) - Linien im Analysegebiet\n(6) - c\n(0) - Ich bin fertig!\n"); int choice; InputInt(&choice); while(flag){ switch (choice){ case 1: printf("Der alte Radius beträgt %lf. Bitte gib einen neuen an.\n", p->radius); InputDouble(&p->radius); break; case 2: printf("Der alte imax-Wert beträgt %d. Bitte gib einen neuean an.\n", p->imax); InputInt(&p->imax); break; case 3: printf("Der alte Fraktaltyp ist %d. Bitte gib einen neuen ein.\n", p->ftype); printf("Tipp: 0 - Apfel, 1- Julia\n"); if (InputChar() == '0') p->ftype=apfel; else if (InputChar() == '1') p->ftype=julia; else ; break; case 4: printf("Das alte Analysegebiet: %lf<=x<=%lf; %lf<=y<=%lf. Bitte gib ein neues ein.\n", p->xmin, p->xmax, p->ymin, p->ymax); printf("x geht von "); InputDouble(&p->xmin); printf("%lf bis ", p->xmin); InputDouble(&p->xmax); printf("%lf\ny geht von ", p->xmax); InputDouble(&p->ymin); printf("%lf bis ", p->ymin); InputDouble(&p->ymax); printf("%lf.\n", p->ymax); break; case 5: printf("Die alte Linienzahlen sind: x=%d y=%d. Bitte gib neue Werte ein.\n Linien in x-Richtung: ", p->xpoints, p->ypoints); InputInt(&p->xpoints); printf("%d und in y-Richtung: ", p->xpoints); InputInt(&p->ypoints); printf("%d.\n", p->ypoints); break; case 6: printf("Der alte Wert für c beträgt: %lf+j(%lf). Bitte gib eien neuen ein.\n", c->x, c->y); printf("Realteil "); InputDouble(&c->x); printf("%lf und Imaginärteil ", c->x); InputDouble(&c->y); printf("%lf\n", c->y); break; case 0: flag = 0; break; } } }