改造一些

This commit is contained in:
2026-08-12 00:06:44 +08:00
parent aca480d988
commit abd1b595c7
57 changed files with 883 additions and 732 deletions
+25 -17
View File
@@ -160,18 +160,26 @@ struct Web_Plot_Session::Impl {
const int spectrum_height = std::max(1, available_height * 43 / 100);
const int waterfall_y = top + spectrum_height + gap;
const int waterfall_height = std::max(1, viewport.height - waterfall_y - bottom);
spectrum_frequency_axis->set_x(left);
spectrum_frequency_axis->set_y(top + spectrum_height);
spectrum_frequency_axis->set_pixel_length(static_cast<std::size_t>(content_width));
spectrum_power_axis->set_x(left);
spectrum_power_axis->set_y(top);
spectrum_power_axis->set_pixel_length(static_cast<std::size_t>(spectrum_height));
waterfall_frequency_axis->set_x(left);
waterfall_frequency_axis->set_y(waterfall_y + waterfall_height);
waterfall_frequency_axis->set_pixel_length(static_cast<std::size_t>(content_width));
waterfall_time_axis->set_x(left);
waterfall_time_axis->set_y(waterfall_y);
waterfall_time_axis->set_pixel_length(static_cast<std::size_t>(waterfall_height));
spectrum_frequency_axis->update([&](Axis_Properties& state) {
state.x = left;
state.y = top + spectrum_height;
state.pixel_length = static_cast<std::size_t>(content_width);
});
spectrum_power_axis->update([&](Axis_Properties& state) {
state.x = left;
state.y = top;
state.pixel_length = static_cast<std::size_t>(spectrum_height);
});
waterfall_frequency_axis->update([&](Axis_Properties& state) {
state.x = left;
state.y = waterfall_y + waterfall_height;
state.pixel_length = static_cast<std::size_t>(content_width);
});
waterfall_time_axis->update([&](auto& state) {
state.x = left;
state.y = waterfall_y;
state.pixel_length = static_cast<std::size_t>(waterfall_height);
});
}
void update_model() {
constexpr int sample_count = 768;
@@ -214,10 +222,10 @@ struct Web_Plot_Session::Impl {
}
void set_center_frequency(double megahertz) {
const double center = megahertz * 1'000'000.0;
const double bandwidth = spectrum_frequency_axis->coord_range().size();
const double bandwidth = spectrum_frequency_axis->get<&Axis_Properties::coordinates>().size();
const Range range{center - bandwidth * 0.5, center + bandwidth * 0.5};
spectrum_frequency_axis->set_coord_range(range);
waterfall_frequency_axis->set_coord_range(range);
spectrum_frequency_axis->set<&Axis_Properties::coordinates>(range);
waterfall_frequency_axis->set<&Axis_Properties::coordinates>(range);
spectrum->set<&Spectrum::Properties::frequency_range>(range);
spectrum->set<&Spectrum::Properties::center_frequency>(center);
spectrum->set<&Spectrum::Properties::sweep_frequency_range>(Range{
@@ -230,8 +238,8 @@ struct Web_Plot_Session::Impl {
const double center = spectrum->get<&Spectrum::Properties::center_frequency>();
const double bandwidth = kilohertz * 1000.0;
const Range range{center - bandwidth * 0.5, center + bandwidth * 0.5};
spectrum_frequency_axis->set_coord_range(range);
waterfall_frequency_axis->set_coord_range(range);
spectrum_frequency_axis->set<&Axis_Properties::coordinates>(range);
waterfall_frequency_axis->set<&Axis_Properties::coordinates>(range);
spectrum->set<&Spectrum::Properties::frequency_range>(range);
spectrum->set<&Spectrum::Properties::sweep_frequency_range>(Range{
center - bandwidth * 0.125,